我有这个可变的结构来确定传入的所有类型的大小之和:
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)> {};
用法:TotalSizeOf<double, int, char>::value
问题是,如何修改它以使其在空参数包上工作,以返回0
;
例如TotalSizeOf<>::value
当前,出现错误error: wrong number of template arguments (0, should be at least 1)
我只有C ++ 14可用。
您还必须专门研究<>
示例: