首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文字类类型成员函数约束

文字类类型成员函数约束
EN

Stack Overflow用户
提问于 2019-06-06 00:58:53
回答 1查看 89关注 0票数 0

该规范似乎没有对文字类类型的成员函数施加任何约束。

关于这个我有两个问题

,Q1),对于我可以加入的成员函数,我有完全的自由吗?

Q2()如何验证类是否为文字类型?(可能的方法:定义一个constexpr对象并检查它是否编译?)

我看到的文字类的唯一约束是:

·所有数据成员都必须具有文字类型。

类必须至少有一个constexpr构造函数。

·如果数据成员具有类内初始化器,则内建类型成员的初始化程序必须是常量表达式,或者如果成员具有类类型,则初始化器必须使用成员自己的constexpr构造函数。

类必须为其析构函数使用默认定义,析构函数是销毁类类型对象的成员

(资料来源: C++ Primer,第5版)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-06 01:52:25

Q1。是的,您可以拥有任何您喜欢的方法(不包括具有约束的构造函数/析构函数)。即使包括virtual方法,如果构造函数是constexpr的话。

Q2。正如您所说,定义该类型的constexpr变量。如果没有诊断消息(编译器是一致的),那么类型肯定是LiteralType。请注意,类型可能是文字的,但由于其他原因,代码会失败编译。

在我看来,在标准中的定义比你引用的定义要清晰一些。例如,在某些情况下,不需要constexpr构造函数(例如闭包或聚合)。

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

https://stackoverflow.com/questions/56469764

复制
相关文章

相似问题

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