std :: get_temporary_bufferが必要なのはなぜですか?
どのような目的で使用する必要がありますstd::get_temporary_bufferか?標準は次のように言っています: 最大n個の隣接するTオブジェクトを格納するのに十分なストレージへのポインタを取得します。 バッファはスタックに割り当てられると思いましたが、そうではありません。C ++標準によると、このバッファは実際には一時的なものではありません。この関数には::operator new、オブジェクトも作成しないグローバル関数に比べてどのような利点がありますか。次のステートメントが同等であるというのは正しいですか? int* x; x = std::get_temporary_buffer<int>( 10 ).first; x = static_cast<int*>( ::operator new( 10*sizeof(int) ) ); この関数はシンタックスシュガーに対してのみ存在しますか?なぜtemporaryその名前にあるのですか? 1996年7月1日のDr.Dobb's Journalで、アルゴリズムを実装するための1つのユースケースが提案されました。 バッファを割り当てることができない場合、またはバッファが要求よりも小さい場合でも、アルゴリズムは正しく機能します。単に速度が低下するだけです。