C++ 返回C+中的作用域+;

C++ 返回C+中的作用域+;,c++,gcc,C++,Gcc,我在gcc 4.5.1的iomanip文件(看起来像头文件)中遇到了以下代码: inline _Setbase setbase(int __base) { return { __base }; } 返回作用域(块)的语言定义是什么?在我看来,这是C++0x中的新语法。这不是返回块。这将构造一个类型为\u Setbase的对象,该对象与 struct _Setbase { int _M_base; }; 我认为这只是正常的结构初始化(也应该是有效的C),不一定。如果\u Setba

我在gcc 4.5.1的iomanip文件(看起来像头文件)中遇到了以下代码:

inline _Setbase  
setbase(int __base)  
{ return { __base }; }  

返回作用域(块)的语言定义是什么?

在我看来,这是C++0x中的新语法。

这不是返回块。这将构造一个类型为
\u Setbase
的对象,该对象与

struct _Setbase { int _M_base; };

我认为这只是正常的结构初始化(也应该是有效的C),不一定。如果
\u Setbase
是纯旧数据,则不需要C++0x。事实上,即使C++0x功能未启用,也会使用标头,因此它不能依赖这些功能。在C++03中,即使使用POD类型,也不能这样做,因为在此上下文中不允许使用聚合初始值设定项。您可以自己检查:,注释行将在C++03中工作。