渡されたすべてのタイプのサイズの合計を決定するためのこの可変構造があります:
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しか使用できません。
デフォルトのテンプレート引数を定義して、sizeofに0を返すクラスを作成できますか?しかし、私は2番目は不可能だと思います。:たぶん、ここのような空の配列を持つstackoverflow.com/questions/47352663/...
—
RoQuOTriX