## 3.2 述語

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

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月