Должны ли все специальные функции-члены быть тривиальными, чтобы класс можно было легко копировать?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Должны ли все специальные функции-члены быть тривиальными, чтобы класс можно было легко копировать?

Сообщение Гость »


На странице cppreference для именованного требования TriviallyCopyable в подразделе классов указано следующее требование:

Тривиально копируемый класс

Тривиально копируемый класс – это класс, который
[*]имеет хотя бы один подходящий конструктор копирования, конструктор перемещения, оператор присваивания копирования или оператор присваивания перемещения. [*]каждый подходящий конструктор копирования тривиален. [*]каждый подходящий конструктор перемещения тривиален. [*]каждый подходящий оператор присваивания копии тривиален. [*]каждый подходящий оператор назначения перемещения тривиален, и [*]имеет неудаляемый тривиальный деструктор.
Итак, если есть тривиальный копирующий оператор, но нетривиальный, скажем, оператор перемещения перемещения, разве класс не является тривиальным копируемым? Моя интуиция подсказывает, что если вы можете создать объект того же типа, тривиально скопировав существующий объект (или присвоив его с помощью memcpy созданному объекту) - это тривиальная копируемость.
Ответить

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

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

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

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

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