
述語は、ブール値または整数値のいずれかを返す単純な関数です。通常の C の規約に従って、整数値がゼロ以外の場合に真となり、そうでない場合は偽となることを前提としています。以下に、述語の例を示します。整数が引数として使用され、数値がうるう年を示す場合は true が返され、それ以外の場合は false が返されます。
bool isLeapYear (unsigned int year)
// 年がうるう年の場合は true が返される
{
// 1000 年、2000 年、・・・ n000 年はうるう年
if (0 == year % 1000) return true;
// 四半世紀ごと
if (0 == year % 400) return true;
// 四半期ごと
if (0 == year % 4) return true;
// それ以外の場合
return false;
}
述語は、たとえば find_if() という名前の汎用アルゴリズムで引数として使用されます。このアルゴリズムは、述語を満たす最初の値を返します。該当する要素が検出されない場合は、範囲の終端値を返します。このアルゴリズムを使用すると、以下に示すように年のリストの最初のうるう年が検出されます。
list<int>::iterator firstLeap = find_if(aList.begin(), aList.end(), isLeapYear);