首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >识别自动生成的成员函数

识别自动生成的成员函数
EN

Stack Overflow用户
提问于 2014-09-13 08:52:00
回答 1查看 94关注 0票数 0

特殊的成员函数是“编译器使用时会自动生成的函数,但程序员没有显式声明这些函数”。

functions

详细情况见C++11标准第12节:

默认构造函数(12.1)、复制构造函数和复制赋值操作符(12.8)、移动构造函数和移动赋值运算符(12.8)和析构函数(12.4)是特殊的成员函数。注意:当程序没有显式声明这些成员函数时,实现将为某些类类型隐式声明这些成员函数。如果它们是odr使用的(3.2),则实现将隐式定义它们。见12.1、12.4和12.8。-end注记

在编译时,有哪些已知的方法可以识别所有生成的特殊成员函数?

我最喜欢的编译器是gcc和clang。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-13 09:14:55

在c++11中,header 定义了一组以下函数:

代码语言:javascript
复制
is_constructible
is_default_contructible
is_copy_contructible
is_move_contructible
is_assignable
is_copy_assignable
is_move_assignable
is_destructible

您可以使用它们在编译时测试隐式生成的方法是否存在,例如:

代码语言:javascript
复制
std::is_constructible<ClassName>::value
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25821495

复制
相关文章

相似问题

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