Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在§;12.3.2/1在C&x2B中+;11标准_C++_C++11_Language Lawyer - Fatal编程技术网

C++ 在§;12.3.2/1在C&x2B中+;11标准

C++ 在§;12.3.2/1在C&x2B中+;11标准,c++,c++11,language-lawyer,C++,C++11,Language Lawyer,C++11标准§12.3.2/1(重点): 类X的成员函数,该类X没有名称为形式的参数 转换函数id: 运算符转换类型id 转换类型id: 类型说明符seq转换说明符 转换声明器: ptr运算符转换声明器 指定从X到conversion-type-id指定的类型的转换。此类函数被调用 转换函数。无法指定返回类型如果转换函数是成员函数,则 转换函数(8.3.5)的类型是“不带参数的函数返回转换类型id” 转换函数是否始终是成员函数,或者在某些情况下并非如此?转换函数始终是(非静态)成员函数 C++

C++11标准§12.3.2/1(重点):

类X的成员函数,该类X没有名称为形式的参数

转换函数id:

运算符转换类型id

转换类型id:

类型说明符seq转换说明符

转换声明器:

ptr运算符转换声明器

指定从X到conversion-type-id指定的类型的转换。此类函数被调用 转换函数。无法指定返回类型如果转换函数是成员函数,则 转换函数(8.3.5)的类型是“不带参数的函数返回转换类型id”


转换函数是否始终是成员函数,或者在某些情况下并非如此?

转换函数始终是(非
静态
)成员函数

C++98或C++03中不存在“if”措辞。我在缺陷报告列表中也找不到对它的引用。真奇怪


正如R.Martinho Fernandes所说,这一措辞很奇怪,但并不矛盾。

中的条款“如果转换函数是成员函数”,作为概念的一部分添加到工作草案中。N2798 12.3.2/1阅读(我将使用粗体显示添加,删除显示删除):

1类
X
的成员函数,无参数,或概念的关联函数,其唯一参数类型为
X
,具有形式名称

转换函数id:

操作员
转换类型id

转换类型id:

类型说明符seq属性说明符opt转换说明符opt

转换声明器:

ptr运算符转换声明器OPT

指定从
X
到conversion-type-id指定的类型的转换。此类成员函数称为转换函数。类、枚举和typedef名称不得在类型说明符seq中声明。既不能指定参数类型,也不能指定返回类型如果转换函数是成员函数, ta转换函数(8.3.5)的类型为“无参数返回转换类型id的函数”;如果转换函数是关联函数,则转换函数的类型为“使用类型为
X
的参数返回转换类型id的函数”
。转换函数从不用于转换

草案中删除了概念措辞。“如果一个转换函数是一个成员函数”,也应该在那个时候被删除,因为它现在是可继承的。N2960§12.3.2/1的相关部分:

1类
X
的成员函数,无参数,或概念的关联函数,其唯一参数为类型X,其名称为

转换函数id:

操作员
转换类型id

转换类型id:

类型说明符seq属性说明符opt转换说明符opt

转换声明器:

ptr运算符转换声明器OPT

指定从
X
到conversion-type-id指定的类型的转换。此类函数称为转换函数。无法指定返回类型。如果转换函数是成员函数,则转换函数(8.3.5)的类型为“不带参数的函数返回转换类型id”;如果转换函数是关联函数,则转换函数的类型为“使用类型为
X
的参数返回转换类型id的函数”

2018-02-03更新:这已在C++17中修复


CWG在修复时将此措辞更正为驾车路过

这并不矛盾。这是一个奇怪的措辞,但它并不矛盾。奇怪的是,“转换函数”在“此类函数称为转换函数”一句中没有斜体。在标准的其他地方有主要定义吗?@Casey没有其他转换函数的定义(在N3936中),这似乎是最基本的定义,因此这句话中的术语应该是斜体。相关:@Casey停止自言自语-你听起来很疯狂。回答得很好(+1)。谢谢,回答得很好。是否有某个地方的工作草案修订历史可以让你找到某些更改的时间?@VaughnCato我希望如此。在03年到11年之间,我去做了一次二进制搜索来定位这些变化。@TemplateRex:or
pdftotext
它们,将它们添加到git回购,以及
git log-S
它们。+1表示二进制搜索的了不起。一个@ njaljgit指数将是可怕的-指责C++标准!