【发布时间】:2019-01-05 10:53:47
【问题描述】:
我的问题是这样的:
假设T 类型可以简单地复制......可以在不调用构造函数的情况下“创建”这种类型的实例......就像这样:
#include <type_traits>
#include <cstring>
using T = int; // T can be any trivially copyable type
T create(const T& other)
{
std::aligned_storage_t<sizeof(T),alignof(T)> my_T;
std::memcpy(&my_T,&other,sizeof(T));
return *reinterpret_cast<T*>(&my_T);
}
这是已定义的行为,还是只能复制到 T 类型的现有对象中?
【问题讨论】:
-
为什么要标记C++14?
-
@xskxzr 因为如果不同版本的语言有不同的答案,我最关心的是c++14版本
标签: c++ copy c++14 language-lawyer memcpy