私が SO で目にするほぼすべての投稿で、 a を含む、人々は aを値std::initializer_list
で渡す傾向があります。std::initializer_list
この記事によると:
https://web.archive.org/web/20120707045924/cpp-next.com/archive/2009/08/want-speed-pass-by-value/
渡されたオブジェクトのコピーを作成したい場合は、値で渡す必要があります。しかし、 a をコピーするのstd::initializer_list
は得策ではありません。
をコピーし
std::initializer_list
ても、基になるオブジェクトはコピーされません。元の初期化子リスト オブジェクトの有効期間が終了した後、基になる配列が存在することは保証されません。
では、なぜ it のインスタンスは、たとえば ではなく、値によって渡されることが多いのconst&
ですか?