Я пытаюсь понять, возможно ли это в общей лямбде C ++ 14, но я не могу найти правильный способ выразить это (или, возможно, это невозможно). Упрощенный пример:
auto confirmOperation = [](auto pr){
assert(pr.second);
};
Идея состоит в том, что если вы передадите ему std::pair
, где second
- это bool
(например, то, что возвращается из emplace
функций), он сможет посмотреть на это bool.
Если бы это был параметр шаблона, я мог бы явно показать pair
с типами пары как общие, но я не думаю, что это возможно с лямбда? Таким образом, вместо этого я помечаю весь аргумент как общий, и поэтому компилятор, похоже, не может сделать вывод, что я передаю ему возврат emplace()
карты.
Как это сделать?
auto
является универсальным типом, который может представлятьpair
. Хотите ли вы изменить поведение функции с помощью типов в возвращаемых значениях? - person Jonathan Mee   schedule 10.06.2016