我有这个可变参数结构来确定传入的所有类型的大小总和:
template <typename U, typename... T> struct TotalSizeOf
: std::integral_constant<size_t, sizeof(U) + TotalSizeOf<T...>::value> {};
template <typename U> struct TotalSizeOf<U>
: std::integral_constant<size_t, sizeof(U)> {};
Run Code Online (Sandbox Code Playgroud)
用法:
TotalSizeOf<double, int, char>::value
问题是,我如何修改它以允许它处理空参数包,返回0;
例如 TotalSizeOf<>::value
目前,我收到错误 error: wrong number of template arguments (0, should be at least 1)
我只有 C++14 可用。