以下の内容はhttps://faithandbrave.hateblo.jp/entry/20120412/1334211246より取得しました。


C++11のstd::make_pair()

C++11のstd::pairが参照をメンバとして持てるようになったこともあり、std::make_pair()関数にも若干の変更が入っています。std::make_pair()のテンプレートパラメータT1、T2がstd::reference_wrapper型だった場合は、展開されてT&となるようです。
VC10とGCC 4.7がこの仕様に対応してることは確認しました。

#include <iostream>
#include <utility>
#include <functional>
#include <type_traits>

int main()
{
    int a = 3;
    char b = 'a';

    auto p = std::make_pair(std::ref(a), std::ref(b));

    static_assert(std::is_same<decltype(p), std::pair<int&, char&>>::value, "");

    a = 4;

    std::cout << p.first << ',' << p.second << std::endl;
}
4,a





以上の内容はhttps://faithandbrave.hateblo.jp/entry/20120412/1334211246より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14