DR 2145中提出的更改是[dcl.fct.def.general]/2从C ++ 14到C ++ 17的更改,其原因如下:
C ++ 14:
函数定义中的声明符的格式应为
D1(参数声明子句) cv-qualifier-seq opt ref-qualifier opt 子>
例外规范 opt attribute-specifier-seq opt 回退类型 opt
如8.3.5中所述。功能 只能在名称空间或类范围内定义。
C ++ 17:
在函数定义中,
void
声明符;
或声明符;
必须是11.3.5中描述的格式正确的函数声明。一种 函数只能在名称空间或类范围内定义。
坦率地说,我不了解更改的动机,也不了解C ++ 17中的新措辞。