17
我遇到下面的代码在一个文件中(看起来像头文件),GCC 4.5.1了iomanip:用C返回范围++
inline _Setbase
setbase(int __base)
{ return { __base }; }
什么是返回一个范围(块)的语言定义是什么?
我遇到下面的代码在一个文件中(看起来像头文件),GCC 4.5.1了iomanip:用C返回范围++
inline _Setbase
setbase(int __base)
{ return { __base }; }
什么是返回一个范围(块)的语言定义是什么?
看起来像C++ 0x中的Uniform initialization的新语法给我。
这不是返回一个块。这种构造_Setbase
类型的对象,在相同的头文件中定义为
struct _Setbase { int _M_base; };
我认为这只是正常的结构初始化(应该是有效的C以及)。 – Joseph 2011-06-06 10:19:03
不一定。如果'_Setbase'是纯数据,它不需要C++ 0x。事实上,即使在C++ 0x功能未打开时也使用该头文件,因此它不能依赖它们。 – 2011-06-06 10:22:07
即使使用POD类型,您也无法在C++ 03中执行此操作,因为您不允许在此上下文中使用聚合初始值设定项。您可以检查自己:http://ideone.com/PHX5y,注释行将在C++ 03中工作。 – 2011-06-06 10:33:11