有没有一种简单的方法,使工作

问题描述:

ALL,有没有一种简单的方法,使工作

const std::string foo[] = { 
    if(<my_condition>) 
     "Test0", 
    "Test1", 
    "Test2", 
    "Test3" 
}; 

我试图使其工作和不重复的代码。

有没有简单的解决方案?

TIA!

+2

你将需要更好地解释这一点。 –

+0

用英文解释这个应该是做什么的,这没有多大意义 – asimes

我会试一试答复,但你应该真的编辑你的问题更具体。

如果您打算拥有数组const,则必须在编译时确定初始值。
这意味着您的条件也必须在编译时进行评估。您可以做到这一点

一个路径是通过一个宏:

#define CONDITION false 

const std::string foo[] = { 
    #if CONDITION 
     "Test0", 
    #endif 
    "Test1", 
    "Test2", 
    "Test3" 
}; 

另外,
你可能要考虑使用std::vector<std::string>和建立在运行时列表。

+0

... ooor拿一个'std :: vector <:string>'并试图使它成为'constexpr'。 – luk32