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