我在 here 遇到了一个有趣的测验问题。 :
Write a translation unit containing a class type T, such that
std::is_empty_v<T>
is true, and yetsizeof(T)
is greater than 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);
关于c++ - 如何使 `std::is_empty_v<T> && sizeof(T) > 1` 为真的类型 T?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70185461/