我發現在源代碼中的下列工程建設:「type name {}」在C++中的含義是什麼?
variable_type variable_name{func(arg1, arg2, arg3)};
在代碼的下一版本中這種結構已經被替換爲以下之一:
variable_type variable_name = func(arg1, arg2, arg3);
所以,我的問題是什麼第一行的意思,它與第二行有什麼不同?我也想知道爲什麼使用第一行而不是第二行可能會更好或更差?
我發現在源代碼中的下列工程建設:「type name {}」在C++中的含義是什麼?
variable_type variable_name{func(arg1, arg2, arg3)};
在代碼的下一版本中這種結構已經被替換爲以下之一:
variable_type variable_name = func(arg1, arg2, arg3);
所以,我的問題是什麼第一行的意思,它與第二行有什麼不同?我也想知道爲什麼使用第一行而不是第二行可能會更好或更差?
不,它不適用,它也適用於非容器類型。 – juanchopanza 2013-03-18 09:27:22
對,將其更改爲「支撐初始化」。 – 2013-03-18 09:28:56
第一行是從C++ 11一個新的功能被稱爲uniform initialization。這種初始化類型也可用於定義構造函數的類,該構造函數採用std::initializer_list
,在這種情況下,此類構造函數具有優先級。
在這種情況下,它是相同的。見[這裏](http://www.gotw.ca/gotw/036.htm) – juanchopanza 2013-03-18 09:24:11
@Mat我認爲這不是正確的重複,因爲它處理與initializer_list構造函數的類。 – juanchopanza 2013-03-18 09:25:41
具體內容取決於'variable_type'的構造函數和'func'的返回類型。 – juanchopanza 2013-03-18 09:28:02