ラムダ式、-C ++ 11(14)

[b](のInt A){ リターン A < X;}  
 // xはここで可変ラムダ式ローカルスコープであり、そして本明細書に取り込まれます。
// [b]すべてのローカル名(例えばXなど)、λは参照によってアクセスするために使用されることを述べて捕捉のリストです。
// xのみをキャプチャしたい場合は、[X - ]のように書くことができる
 // 場合は、次にように記述された、Xのコピーを渡すオブジェクト生成機能を所望の[X =]
 // すべてのローカル名を取り込む[=]の値にアクセスするために使用
 / / 何もキャプチャは[] 

// 特定の応用例 
テンプレート<型名C、型名オペラ> ボイド for_all(C&C、オペラOP)
{ (オート・X:C)
        OP(X); 
} 
ベクトル <a unique_ptrを<the Shape> > V; 
for_all(V、[](unique_ptrを <形状>&PS){PS-が>()を描き;});

    容器に各オブジェクト要素ポインタポイントの特定の動作を行う 
for_all(V、[](unique_ptrを<形状>&PS){PS->回転(45 );}); 

// ラムダは、一般的な表す 
テンプレート< クラス Sを>
 ボイド rotate_add_draw(ベクトル<S>&V、INT R&LT)
{ 
    for_all(V、[](オート&S)S- {>回転(R&LT); S-> 描画();}); 
} 

ベクトル <*シェイプ> V2; 
rotate_add_draw(V2、90)。

 

おすすめ

転載: www.cnblogs.com/share-ideas/p/11921245.html