Является ли утверждение этого CPPREF устаревшим на типичном использовании STD :: Ground?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Является ли утверждение этого CPPREF устаревшим на типичном использовании STD :: Ground?

Сообщение Anonymous »

Согласно CppRef (Monthsions Mine): < /p>

Типичное использование std :: raund include: < /p>
  • Получение указателя на объект, созданный в хранении существующего объекта
    , то же самое, где позабоченные объекты не могут быть
    , потому что он не может быть
    , потому что он не может быть
    stice object -inember, потому что на положении не может быть
    , потому что это объект. subobject);
  • Получение указателя на объект, созданный путем размещения нового
    из указателя на объект, обеспечивающий хранилище для этого объекта.
Я думаю, что это действительно необходимо для первого сценария. Тем не менее, это не кажется необходимым для второго. Например: < /p>

Код: Выделить всё

int main() {
struct A { int n; };
alignas(A) unsigned char buf[sizeof(A)]{};

auto p = new (buf) A{1}; // The object is implicitly created (since C++20).
std::cout n;       // OK, the output is gauaranteed to be 1.
}
Обратите внимание, что нам не нужно писать Auto p = std :: raunder (new (buf) a {1}); , чтобы избежать ub.
>

Подробнее здесь: https://stackoverflow.com/questions/796 ... stdlaunder
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»