std::reference_wrapper
デフォルトでは構築可能ではありません。したがって、次のいずれも書くことができません。
std::vector<std::reference_wrapper<int>> vec(10);
std::array<std::reference_wrapper<int>, 3> arr;
しかし、驚いたことに、オブジェクトstd::vector::reserve
のベクトルのメンバー関数を呼び出して、std::reference_wrapper
その容量を効果的に変更できます。
std::vector<std::reference_wrapper<int>> vec;
vec.reserve(10);
std::reference_wrapper
デフォルトのコンストラクターがないため、これはどのように可能ですか?