述語は、ブール値または整数値のいずれかを返す単純な関数です。通常の 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);