auto lambda = [](){ return 7; };
std::result_of<decltype(lambda)()>::type val = lambda(); // 'val' : illegal use of type 'void'
エラーが発生します:'val' : illegal use of type 'void'
。タイプがvoidとして解決されるのはなぜですか?
私は何が私を得るのかについて誤解されるかもしれresult_of
ません。渡すことができるものからの戻り値が欲しいだけですstd::function
。