読者です 読者をやめる 読者になる 読者になる

boost::tieでpairのfirst/secondに名前を付ける(ようなこと)

C++

「pairからパターンマッチで抜き出す」が正しい表現だと思いますが、
私のコードの意図としてはタイトルのとおりです。


boost::tieはこんなケースでよく使います。

#include <utility>

int main()
{
    std::pair<int, int> mat;

    // first/secondという名前を使いたくないのでx/yという変数にそれぞれ代入する
    int x = mat.first;
    int y = mat.second;
}

↓ boost::tieを使う

#include <boost/tuple/tuple.hpp>

int main()
{
    std::pair<int, int> mat;

    // first/secondという名前を使いたくないのでx/yという名前を付ける
    int x, y;
    boost::tie(x, y) = mat;
}

行数的には変わってないですが、pairから要素を抜き出すときにfirst/secondが出てこないので
boost::tieを好んで使っています。


# pair使わずにクラス作れよって言われたらそれまでですが…。