背景:我堅持arm-arago-linux-gnueabi-g++ (GCC) 4.3.3
。儘管需要C++ 11或更高版本的答案也值得讚賞,但請明確表達任何語言要求比C++ 03晚。如何計算初始化一個常量數組(const const look-up-tables)?
對象的構造函數將值填充到算法要使用的表中。
由於這些表不改變,不應該改變,我希望他們是const,我該怎麼做?
難度#1,這些值是計算生成的,我不想在源文件中將它們硬編碼。
難點#2,計算有時取決於僅在運行時可用的輸入。
難度#3,我不知道爲什麼,但我不希望數組是靜態的,即使所有對象的值可能相同(值不取決於運行時輸入的情況)。
難點#4,它是一個數組,因此C++ 03中的初始化程序列表將不起作用。
EDIT1:這篇文章後 幾個星期,我發現兩者的std ::陣列和std ::向量是很好的替代C風格的數組時的std ::陣列不可用。
裹與確保它只有一次初始化,並且僅提供了常量吸氣劑一類的數組。 – BartoszKP
將數據標記爲「常量」並不真正爲您帶來任何價值。你可能讓它們在內存中是可變的,只是接口返回對const對象的引用。 – nothrow