演算子「<」を定義していますタプルの厳密な弱い順序付けの場合
n タプルが厳密な弱い順序付けを満たすには、次の基準を満たす必要があります。
Boost ライブラリは、演算子「<」を持つ事前定義されたタプル クラスを提供します。厳密な弱い順序付けに従う場合は、特定のコンテキストに対して独自の演算子を定義することもできます。
演算子 '<' を実装する方法は次のとおりです。マニュアル:
struct S { ThingA a; ThingB b; }; bool operator<(S const& lhs, S const& rhs) { return std::make_tuple(lhs.a, lhs.b) < std::make_tuple(rhs.a, rhs.b); }
この例では、std::make_tuple 関数を利用して、S の個々の要素をコピーせずにタプルを作成します。次に、汎用タプル比較演算子を使用してタプルを比較します。
演算子 '==' については、同様のアプローチに従うことができます。
bool operator==(S const& lhs, S const& rhs) { return std::make_tuple(lhs.a, lhs.b) == std::make_tuple(rhs.a, rhs.b); }
これらの実装では、ThingA とThingB には独自の演算子「<」があります。演算子「==」は厳密な弱い順序付けのために定義されています。
以上が` の定義方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。