Giả sử tôi có một tham số kiểu mẫu T.Vị trí mới trong tiêu chuẩn :: aligned_storage?
Và giả sử tôi có một std::aligned_storage
như sau:
typename std::aligned_storage<sizeof(T), alignof(T)>::type storage;
tôi muốn vị trí mới một T vào storage
.
Giá trị/loại con trỏ tuân thủ tiêu chuẩn để chuyển cho toán tử vị trí mới là gì và làm thế nào để lấy được từ storage
?
new (& ???) T(a,b,c);
Ví dụ:
new (&storage) T(a,b,c);
new (static_cast<void*>(&storage)) T(a,b,c);
new (reinterpret_cast<T*>(&storage)) T(a,b,c);
new (static_cast<T*>(static_cast<void*>(&storage));
nào ở trên (nếu có) là tuân thủ, và nếu không, cách tốt hơn là gì?
OK, +1 cho mức độ hoang tưởng tuyệt đối. Nếu tôi đã từng bắt tay vào viết một bài thực hành Hell ++, tôi sẽ yêu cầu bạn cộng tác :-) – Angew