相关疑难解决方法(0)

这里哪个操作不是微不足道的?

编译器同意,下面的XY是默认可构造的,但不是平凡的(demo)。

#include <type_traits>

struct X { int x {}; };
struct Y { int y = 0; };

static_assert(std::is_default_constructible_v<X>);
static_assert(std::is_default_constructible_v<Y>);
static_assert(!std::is_trivially_default_constructible_v<X>);
static_assert(!std::is_trivially_default_constructible_v<Y>);
Run Code Online (Sandbox Code Playgroud)

为什么它们不是微不足道的?根据 cppreference.com(请参阅 参考资料is_trivially_constructible),在默认构造期间必须调用一个不平凡的操作。那是哪一个?

c++ type-traits

6
推荐指数
1
解决办法
144
查看次数

标签 统计

c++ ×1

type-traits ×1