xml*_*lmx 3 c++ types type-traits template-meta-programming c++11
我在这里遇到了一个有趣的测验问题:
编写一个包含类类型 T 的翻译单元,这样为
std::is_empty_v<T>真,但sizeof(T)大于 1。
我思考了一段时间,但没有解决办法。
如何创建一个真实T的类型std::is_empty_v<T> && sizeof(T) > 1?
std::is_empty检查是否没有成员。您可以使用对齐来强制大小大于 1:
struct alignas(2) T {};
static_assert(std::is_empty_v<T>);
static_assert(sizeof(T) > 1);
Run Code Online (Sandbox Code Playgroud)