Std::is_trivyly_copyable слишком силен, что мне использовать вместо него?C++

Программы на C++. Форум разработчиков
Anonymous
Std::is_trivyly_copyable слишком силен, что мне использовать вместо него?

Сообщение Anonymous »

Я хочу принимать классы, которые являются «тривиально копируемыми», в том смысле, что если я скопирую байтовое представление одной переменной типа в другую, ее можно будет использовать, и ничего не будет сломано.
Глядя на std::is_trivyly_copyable, я вижу, что требования следующие:
  • По крайней мере одна копия допустимы
  • Каждый допустимый конструктор копирования (если таковой имеется) является тривиальным
  • Каждый подходящий конструктор перемещения (если таковой имеется) является тривиальным
  • Каждый допустимый оператор присваивания копирования (если есть) тривиален
  • Каждый допустимый оператор присваивания перемещения (если есть) тривиален
  • Имеет тривиальный неудаленный деструктор
Первое и последнее требование — проверка. Но другие требования очень строгие и не то, что мне нужно! Я был бы готов пойти на «компромисс» с наличием тривиального копирования в качестве требования, а это уже сильно отличается от того, что мне действительно нужно.
Итак, какой признак типа я могу использовать из стандартной библиотеки или написать самостоятельно, чтобы выразить интересующее меня ограничение?
Я пишу C++11 прямо сейчас, поэтому, если ваш ответ требует более позднего стандарта - напишите его, но упомяните этот факт явно.

Подробнее здесь: https://stackoverflow.com/questions/719 ... se-instead

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