У меня есть шаблонный класс MyClass
, и я хочу запустить его для различных параметров, чтобы измерить некоторые значения. Я знаю точные параметры перед компиляцией, поэтому я предполагаю, что должен быть способ достижения цели.Как передать constexpr в качестве параметра шаблона?
Мой код до сих пор:
template <int T>
class MyClass { /*...*/ };
constexpr int PARAMS[] = {1,2,3 /*, ...*/};
for (constexpr auto& t: PARAMS) {
MyClass<t> myClass;
// ... do sth
}
Однако компилятор (GCC v4.9.2, C++ 11) не принимает этого. Я также попытался использовать const
вместо constexpr
, который тоже не работает.
Возможно ли это чем-то вроде этого? Я действительно не хочу использовать макросы вообще.
Цикл выполняется во время выполнения, а не во время компиляции. Шаблоны разрешены во время компиляции. –
Вам понадобится цикл времени компиляции (который может быть реализован посредством репликации времени компиляции или расширения пакета параметров вариационного шаблона). – Constructor
использовать рекурсию вместо –