下面是我有一個問題的代碼:我怎樣才能初始化一個成員std ::沒有默認構造函數的對象的數組?
class Foo {
public:
Foo() :
memberArray{Bar(1), Bar(3), Bar(2)}
{}
struct Bar {
Bar(int param1) { }
};
private:
std::array<Bar,3> memberArray;
// Bar memberArray[3]; // Using a raw array like this instead compiles fine..
};
我使用GCC 4.6.1,和編譯的C++ 11。有誰知道我應該如何初始化我的std ::數組?
相關:http://stackoverflow.com/questions/8646088/how-can-i-initialise-a-member-array-of-objects-that-dont-have-a-default-constuc – 2011-12-27 15:49:27
@LightnessRacesinOrbit這不是一個笨蛋...他試圖初始化一個成員,但是這個問題初始化一個局部變量。後者可以省略支架,但前者不能。 – 2012-01-14 15:44:47
@Johannes:我從來沒有說過它是一個dup。我說這是相關的。 – 2012-01-14 21:03:14