Что-то вроде:Можно ли использовать условия макроса с аргументами шаблона в C++?
template<bool HOLD_MANUFACTURER>
class Computer {
int memory;
int storage;
#if HOLD_MANUFACTURER
char *manufacturer;
#endif
};
мне это нужно, чтобы создать две вариации почти того же класса, когда одна вариация зажигалку один из соображений производительности. Я не хочу использовать отдельный класс, который обернет более легкий.
Если да, возможно ли это для любого типа (не только bool из примера кода выше)? Может быть, только примитивные типы? Как насчет перечислений?
Этот код не работает для меня, но я надеюсь, что я только что пропустил какую-то мелочь.
К хорошим ответам здесь я добавлю, что причина, по которой вы не можете этого сделать, состоит в том, что препроцессор запускается перед компилятором , – Quentin
не являются аргументами шаблона препроцессором? – Reflection
@Reflection Нет, препроцессор находится в предварительной компиляции, аргументы шаблона находятся во время компиляции. – Sheljohn