Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2023, 00:39   #1
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию typename<T>{}()

Здравствуйте. Как понимать {} в следующей конструкции?
Код:
std::hash<T>{}(parameter)
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Старый 10.03.2023, 02:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

https://en.cppreference.com/w/cpp/la...initialization
p51x на форуме Ответить с цитированием
Старый 10.03.2023, 09:52   #3
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

maks1331, вызов конструктора по умолчанию. А круглые скобки - вызов оператора "круглые скобки" для сконструированного объекта
Алексей1153 вне форума Ответить с цитированием
Старый 11.03.2023, 00:08   #4
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

Вызов оператора () у объекта после инициализации по умолчанию? Не понятен смысл инициализации
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Старый 11.03.2023, 08:29   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от maks1331 Посмотреть сообщение
Не понятен смысл инициализации
Каждый объект перед использованием надо создать
p51x на форуме Ответить с цитированием
Старый 11.03.2023, 16:19   #6
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

maks1331, std::hash<T> - это функциональный объект для подсчёта хеш-функции для типа T (для стандартных типов они уже определены)

там, где требуется посчитать хеш, по известному классу создаётся объект, затем вызывается оператор (), который и считает хеш

например, это используется в шаблонах std::unordered_set, std::unordered_multiset, std::unordered_map, std::unordered_multimap
Алексей1153 вне форума Ответить с цитированием
Старый 11.03.2023, 16:19   #7
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Каждый объект перед использованием надо создать
Это правда. Но ведь можно просто использовать статический метод...
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Старый 11.03.2023, 16:53   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от maks1331 Посмотреть сообщение
Но ведь можно просто использовать статический метод...
Статический метод не использует объект, ему this не передается.
p51x на форуме Ответить с цитированием
Старый 12.03.2023, 14:04   #9
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

Спасибо за ответы
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управляемая библиотека (managed dll): загвоздка с (универсальным типом) generic typename anakinskyoker Общие вопросы C/C++ 6 19.07.2014 07:34
беда с typename impus Общие вопросы C/C++ 4 02.02.2012 13:10