1
次のコードがあり、明示的にラムダ関数の出力をboolに変換できないことがわかりました。私はこれをオンラインIDE http://ideone.com/で検証しています。私はC++ 14を選択します。ラムダ関数の戻り値の型が正しく動作しない
#include <iostream>
using namespace std;
int main() {
int number = 10;
int bar = 6;
auto numberisLarger = [&]() -> bool {return number > bar;};
bool isLarger = numberisLarger;
return 0;
}
ただし、以下のようにコンパイルエラーが発生します。
error: cannot convert 'main()::<lambda()>' to 'bool' in initialization
bool isLarger = numberisLarger;
明示的にboolに変換しましたが、なぜ機能しないのですか? ありがとう!
「numberisLarger」は関数である。 –
'bool isLarger = numberisLarger();' – Amadeus
すべてのコードが不足しているため、 "シンプルな誤植"と票決しました。パスカルの背景から来た場合:すべての関数をC(++)で明示的に呼び出す必要があります。 – kay