首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Constexpr默认函数

Constexpr默认函数
EN

Stack Overflow用户
提问于 2020-07-16 06:59:35
回答 1查看 61关注 0票数 1

可以是常量表达式的默认函数是隐式常量表达式吗?

代码语言:javascript
复制
class c
{
public:
    constexpr /*<- necessary?*/ c() = default;
    constexpr /*<- necessary?*/ c(c const&) = default;
    constexpr /*<- necessary?*/ c(c &&) = default;
    constexpr /*<- necessary?*/ c& operator =(c const&) = default;
    constexpr /*<- necessary?*/ c& operator =(c &&) = default;
    ~c() = default;

private:
    int x = 0;
};

其他限定符呢,比如noexcept

EN

回答 1

Stack Overflow用户

发布于 2020-07-16 07:10:29

可以,如果满足constexpr成员的要求,则默认特殊成员为constexpr。具体见11.4.4.1/4的默认构造函数:

默认且未定义为已删除的默认构造函数是隐式定义的...隐式定义的默认构造函数执行类的一组初始化,这些初始化将由用户为该类编写的默认构造函数执行,没有ctor初始化器和空的复合语句。..。如果用户编写默认构造函数将满足常量表达式构造函数(dcl.constexpr)的要求,则隐式定义的默认构造函数为常量表达式。在隐式定义类的默认默认构造函数之前,将隐式定义其基类及其非静态数据成员的所有非用户提供的默认构造函数。..。

其他特殊成员也有类似的措辞。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62924967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档