Я пытался выяснить тип возврата лямбда-выражения, чтобы узнать, возвращает ли функция void
или нет.
Моя первая мысль использовала std::invoke_result
, однако этоне работает должным образом, так как он не работает с std::is_same
, который ожидает два типа.
Вот что я пытался
auto lamb = [] ( int x ) { cout << x << endl; };
is_same<(invoke_result<decltype(lamb),int>),void>;
Ошибка:
trabapply2.cc:32:50: error: template argument 1 is invalid
is_same<(invoke_result<decltype(lamb),int>),void>;
Есть предложения?