相关疑难解决方法(0)

为什么不能将析构函数标记为constexpr?

在C++中,您可以将许多内容声明为constexpr:变量,函数(包括成员函数和运算符),构造函数,以及自C++ 1z以来的if语句lambda表达式.但是,声明析构函数会 constexpr导致错误:

struct X {
    constexpr ~X() = default; // error: a destructor cannot be 'constexpr'
};
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 为什么不能标记析构函数constexpr
  2. 如果我不提供析构函数,是隐式生成的析构函数constexpr吗?
  3. 如果我声明一个默认的析构函数(~X() = default;),它会自动constexpr吗?

c++ language-lawyer constexpr

33
推荐指数
3
解决办法
3087
查看次数

标签 统计

c++ ×1

constexpr ×1

language-lawyer ×1