我不明白用於在構造函數initilizer中初始化數組的新C++ 11語法名單。我不再堅持使用C++ 03,但由於程序限制,我無法使用boost或std :: vector。具有多個數組的類的構造函數initilizer列表(C++ 11正常,boost和std :: vector不是)
FOO的實例必須通過構造函數調用進行調整,並且表現得像x和y的大小是靜態已知的。新的C++ 11功能是否允許這樣做?
我不確定是否或如何std::initializer_list<>
可以提供幫助。
class FOO
{
public:
// this constructor needs to size x = count and y = count * 4
FOO(int count) :
{
// interate over x and y to give them their initial and permenent values
}
private:
const BAR x[];
const TAR y[];
};
#include "foo.h"
void main(void)
{
// both need to work as expected
FOO alpha(30);
FOO * bravo = new FOO(44);
}
「必須由構造函數調用的尺寸和行爲就像x的大小和y是靜態已知」 - 你一定要明白,這些相互矛盾的要求,對不對?另外,請告訴我,「程序約束」,不允許你使用'std :: vector'。 – Xeo
我同意矛盾的要求。我有大量需要可用於此類的實例的靜態只讀數據。我不希望堆或棧上的數據。我從此一直在看Marcus的問題[鏈接](http://stackoverflow.com/questions/7535743/organizing-static-data-in-c/7535953#7535953),更重要的是比爾福斯特的回覆。我的數據可能太大而無法直接放入源代碼。 > [1,000,000]。我希望有一些方法可以直接將這些記錄直接加載到內存位置的ram/rom中,我可以使用指針。 – wapadomo
@wapadomo:歡迎來到[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。您詢問了有關initializer_lists和初始化的信息,但您真正想要的是將批量數據存儲在可執行文件中並獲取指針的方法。那麼你應該問過*那*。 –