2 つの要素のみを含む軽量構造を構築する場合、多くの開発者は、組み込みサポートのため std::pair を選択します。演算子
代替ソリューションには、Boost または C 11 のタプルを使用することが含まれます。タプルは std::pair に比べて構造と明瞭さが向上しますが、依然として利用が面倒な場合があります。 。この問題を軽減するために、開発者は代わりにtieベースの操作を使用することを検討できます。
bool operator<(MyStruct const& lhs, MyStruct const& rhs){ return std::tie(lhs.one_member, lhs.another, lhs.yet_more) < std::tie(rhs.one_member, rhs.another, rhs.yet_more); }
この例では、tieは渡された引数から参照のタプルを作成します。このアプローチの利点は次のとおりです。
プライベート継承しながらタプルからのものが代替案として提案される場合がありますが、それはいくつかのことを示します欠点:
全体として、タプルとタイによる比較演算子の実装は、簡素化された正しい演算子の実装のための実行可能なオプション。ただし、プロファイリングによって比較操作がアプリケーションの実行のボトルネックであることが判明した場合は、パフォーマンスへの影響を考慮し、対処する必要があります。
以上がタプルと「std::tie」を使用すると、C での比較演算子の実装をどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。