我能用memcpy操作std::is_trivially_move_*类型的元素吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计291个文字,预计阅读时间需要2分钟。
is_trivially_copy_*和is_trivially_move_*之间有什么区别?我可以用memcpy来移动构造/赋值is_trivially_move_*类型吗?它们之间的区别正是标准所说的:特定的操作是微不足道的。一个类类型可以有一个‘’。”
is_trivially_copy_ *和is_trivially_move_ *之间有什么区别?我可以使用memcpy来移动构造/赋值is_trivially_move_ *类型吗? 它们之间的区别正是标准所说的:特定的操作是微不足道的.一个类可以有一个简单的复制构造函数和一个非平凡的移动构造函数,反之亦然.但是,这些特征不足以用memcpy代替.该标准仅允许您将memcpy用于TriviallyCopyable的对象.不仅可以简单地复制可构造,而且可以完全复制TriviallyCopyable.所以你想要的特性是is_trivially_copyable.
从技术上讲,您还应该检查类型是否是可复制构造/可分配的,具体取决于您是否要记住活动对象. TriviallyCopyable类型可以具有已删除的复制构造函数或赋值运算符,在这种情况下,该类的编写者期望不能复制该表单. TriviallyCopyable类型更常见的情况是删除的复制赋值运算符(可能由于具有const成员),在这种情况下,您不应该记忆到活动对象.
本文共计291个文字,预计阅读时间需要2分钟。
is_trivially_copy_*和is_trivially_move_*之间有什么区别?我可以用memcpy来移动构造/赋值is_trivially_move_*类型吗?它们之间的区别正是标准所说的:特定的操作是微不足道的。一个类类型可以有一个‘’。”
is_trivially_copy_ *和is_trivially_move_ *之间有什么区别?我可以使用memcpy来移动构造/赋值is_trivially_move_ *类型吗? 它们之间的区别正是标准所说的:特定的操作是微不足道的.一个类可以有一个简单的复制构造函数和一个非平凡的移动构造函数,反之亦然.但是,这些特征不足以用memcpy代替.该标准仅允许您将memcpy用于TriviallyCopyable的对象.不仅可以简单地复制可构造,而且可以完全复制TriviallyCopyable.所以你想要的特性是is_trivially_copyable.
从技术上讲,您还应该检查类型是否是可复制构造/可分配的,具体取决于您是否要记住活动对象. TriviallyCopyable类型可以具有已删除的复制构造函数或赋值运算符,在这种情况下,该类的编写者期望不能复制该表单. TriviallyCopyable类型更常见的情况是删除的复制赋值运算符(可能由于具有const成员),在这种情况下,您不应该记忆到活动对象.

