我試圖在variadic模板中實現一個元函數(?),以便在編譯時計算幾個類型的最大值sizeof
。variadic模板中的最大元函數大小
template<typename... Ts> struct MaxSizeof {
static constexpr size_t value = 0;
};
template<typename T, typename... Ts> struct MaxSizeof {
static constexpr size_t value = std::max(sizeof(T), typename MaxSizeof<Ts...>::value);
};
但我發現了一些奇怪的錯誤:
MaxSizeof.h(7): error C3855: 'MaxSizeof': template parameter 'Ts' is incompatible with the declaration
MaxSizeof.h(7): error C2977: 'MaxSizeof': too many template arguments
MaxSizeof.h(5): note: see declaration of 'MaxSizeof'
能不能幫我修的代碼?
編譯器是MSVC++ 2017工具集v141。
你在constexpr之前缺少**靜態**? – Phil1970
@ Phil1970,謝謝,我已經更新了代碼和錯誤消息。 –