gpt4 book ai didi

c++ - 为什么仅仅因为有一个用户定义的析构函数,复制构造函数就不是微不足道的了?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:19 25 4
gpt4 key购买 nike

<分区>

以下摘录在 Clang-libstdc++ 或 Clang-libc++、GCC、它们的许多版本以及自 11(14 和 17)以来的所有三个语言版本中编译:

#include <type_traits>

struct HasUserDefinedDestructor {
~HasUserDefinedDestructor() {}
};

using HUDD = HasUserDefinedDestructor;

static_assert(not std::is_trivially_move_constructible<HUDD>::value, "");
static_assert(not std::is_trivially_copy_constructible<HUDD>::value, "");

这让我很惊讶,因为复制只需要一些微不足道的操作。

这是编译器/库中的错误,还是标准在某处说具有用户定义的析构函数会使复制和移动构造函数变得不简单?

编辑:为什么这不是默认构造问题的重复:鉴于我们知道构造函数的“无异常(exception)”和平凡性受到析构函数的无异常(exception)性和平凡性的影响,但在知道所有这些特征相关之前,问题是不同的。有这个问题可以让任何人看到这是相关的

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com