Lambda戻りタイプの指定

600 ワード

Lambda式を使用する場合、戻りタイプを指定しなくてもよい場合がありますが、戻りタイプを指定する必要がある場合があります.No者はエラーが発生します.
どうして?
1.戻りタイプが指定されていない場合.
一般的に、コンパイラはlambdaの戻りタイプを自動的に推定します.例:
auto func_1=[] (int I) {return I;};   //          int 
auto func_2=[] (int I) {cout<

2.返却タイプを指定する必要がある場合
lambda関数にreturn文が1つ以上含まれている場合、コンパイラは戻りタイプを推定できません.例:
auto func_3=[] (int I) { if(I<0) return 0;else return 1;};   //    return     int ,              ,            。
auto func_3=[] (int I) -> int {if (I<0) return 0; else return 1;};  //                ( -> type   )