我有一個模板類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
,這不起作用。
這是可能的嗎?我真的不想使用宏。
環路是在運行時執行,而不是在編譯時。模板全部在編譯時解決。 –
您需要一個編譯時循環(可以通過編譯時遞歸或variadic模板參數包擴展來實現)。 – Constructor
改爲使用遞歸 –