我有一個類:定義和在同一行初始化STL恆定
Temp.h:
[...]
class Temp{
public:
Temp(vector<vector<double> > vect);
const static Temp VAR1;
const static Temp VAR2;
...
};
我想初始化VAR1和VAR2使用數組雙打的:{{0,1,0,1},{1,0 ,1,0}}。但我不能做到這一點是這樣的:
const Temp::VAR1(...);
,因爲沒有「單行」運算符來構造向量的向量從數組的數組。我想到了建築結構,如:
B{
vector<vector<double> > vect;
B& add (double[] a, int number) {...
push elements from array to vector and add this vector to vect ...
return *this;
}
Temp build() {return Temp(vect);}
}
但是,當我打電話:
B().add({0,1,0,1},4).add({1,0,1,0},4).build();
編譯器無法識別{0,1,0,1}作爲數組,但作爲一個雙*我無法改變它。
是否有任何選項來創建一些方法或類似的東西來初始化const靜態成員多於一行?
我希望我寫得夠簡單,如果沒有,我會稍後編輯它。
C++ 11回答簡直太神奇了。我可以在哪裏閱讀有關C++ 11標準的內容? ISO/IEC網頁太昂貴了。 – Benjamin 2012-07-26 08:15:54
是的,它是! [Wikipedia page](http://en.wikipedia.org/wiki/C%2B%2B11)涵蓋了大量的內容,並且可以鏈接到標準的免費下載草案版本。 Herb Sutter的文章[現代C++風格元素](http://herbsutter.com/elements-of-modern-c-style/)非常易讀,並且有很多有趣的鏈接可供參考。 – ecatmur 2012-07-26 08:28:00