C++ リファレンス ページから次のようなコードを見つけました。
#include <algorithm>
#include <list>
#include <vector>
#include <functional>
int main()
{
std::list<int> l = {-4, -3, -2, -1, 0, 1, 2, 3, 4};
std::vector<std::reference_wrapper<int>> v(l.begin(), l.end());
return 0;
}
これは「例」セクションの抜粋です。コードは期待どおりにコンパイルおよび実行されます。しかし、それはどのように可能ですか?はstd::reference_wrapper<int>
デフォルトで構築可能ではありません。どうやってstd::vector
それらのものを作ることができますか?std::vector
私は常に動的配列として想像していました。しかし、OS から新たに与えられたメモリのブロックをどのように初期化できますstd::list
か?
これは紛らわしい質問のように聞こえるかもしれませんが、何らかの理由で、上記のコードで何が起こっているのか完全には理解できません。何が起こっているのですか?