テンプレート<型名T>
クラスLESS_THAN {
Tヴァルのconst; // valのと比較します
公衆:
LESS_THAN(CONST T&V):のval(V){}
ブール演算子()(CONST T&X)のconst {リターンX <ヴァル;} //コールオペレータ
}。
LESS_THAN <整数> LTI {42}。// LTI(i)が使用して42に私を比較します<(I <42)
LESS_THAN <ストリング> LTS { "バッカス"}。使用した "バッカス" へのを比較します// LTS(S)<(S < "バッカス")
無効FCT(int型nは、constの文字列&S)
{
BOOL B1 = LTI(N)。// trueの場合、N <42;
BOOL B2 = LTS(S)。//真の場合は、<「バッカス」
// ...
}
テンプレート<typenameにC、型名P>
int型のカウント数(定数C&C、Pはpredを)
{
int型CNT = 0;
(:Cのconstオート&x)のための
もし(predは(X))
++ CNT;
CNTを返します。
}
空はf(constのベクトル<整数>&VEC、constのリスト<文字列>&LST、int型のx、constの文字列&S)
{
COUT << "値の数未満で" << X << ":" <<カウント(VEC、LESS_THAN <整数> {X})<< '\ n' は、
COUT << << S << "未満の値の数" ":" <<カウント(LST、LESS_THAN <ストリング> {S})<< '\ n' は、
}
またはラムダ式は次のとおりです。
空はf(constのベクトル<整数>&VEC、constのリスト<文字列>&LST、int型のx、constの文字列&S)
{
COUT << "値の数未満で" << X << ":" <<カウント(VEC、[b](int型A){<X返す;})<< '\ n' は、
COUT << "値の数未満で" << S << ":" <<カウント(LST、[b](CONST文字列&){<Sを返す;})<< '\ n' は、
}
ラムダ式について:
テンプレート<クラスC、クラスオペラ>
空for_all(C&C、オペラopが)// Cは、ポインタのコンテナであることを前提としてい
{
(C:オート&x)のための
OP(* x)は、//パスOP()各要素への参照を指摘
}
空のユーザー()
{
ベクトル<unique_ptrを<形状>> V;
しばらく(CIN)
v.push_back(read_shape(CIN))。
for_all(V、[](形状&S){s.draw();}); // draw_all()
for_all(V、[](形状&S){s.rotate(45);}); // rotate_all(45)
}