2017-02-09 2 views
-3

ALL,Есть простой способ заставить его работать

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

Я пытаюсь заставить его работать и не повторять код.

Есть ли простое решение?

TIA!

+2

Вам нужно будет объяснить это лучше. –

+0

Объясните на английском, что это должно делать, что не имеет смысла – asimes

ответ

0

Я сделаю снимок при ответе, но вы должны действительно изменить свой вопрос, чтобы быть более конкретным.

Если вы собираетесь иметь массив const, вы должны определить значения инициализации во время компиляции.
Это означает, что ваше состояние также должно быть оценено во время компиляции.

Один маршрут можно предпринять, чтобы выполнить это через макрос:

#define CONDITION false 

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

В качестве альтернативы
вы можете рассмотреть возможность использования std::vector<std::string> и построения списка во время выполнения.

+0

... ooor возьмите 'std :: vector ' и попытайтесь сделать его 'constexpr'. – luk32

Смежные вопросы