9
アロケータは、 "placement new"と "operator new"と同じ作業をするようです。 とそのインタフェースがより便利です。例えば"placement new"と "operator new"はまだ必要ですか?
:
string *ps = static_cast<string *>(operator new(sizeof(string)));
new (ps) string("Hello");
cout<<*ps<<endl;
が
allocator<string> as;
string *ps2 = as.allocate(1);
as.construct(ps2,"Hello");
cout<<*ps2<<endl;
に書き換えることができる。だからそれは "配置新しい" と "new演算子" 廃止されていることを意味していますか?
下位互換性を保つためです。 –
具体的には、 'allocator'は' new 'と 'operator new'の両方を必要とします。私は彼らが「時代遅れ」ではなく、むしろクライアントコードで使用すべきではないと言います。 –
新しいプレースメントは、実際には組み込みシステムやオーズなどの独立した環境で使用できます。 – Skeen