2

テンプレート テンプレートを介して渡される引数のリストを拡張しようとしています。最初の例は機能しますが、2 番目の例は機能しません。私が探している結果は、2 番目の例でcWapperObject.cMemberVariable.cTupleは typestd::tuple<double, float, short, int>です。どうすればこれを達成できますか?(そして、コメントや回答でライブラリブーストについて言及しないでください)。

例 1:

#include <tuple>

template<class ... TS> class CObject {
   std::tuple<TS ...> cTuple;
};

template<template<typename ... TS> class TMPL_CLASS_T>
class CWrapperObject {
    TMPL_CLASS_T<double, float, short> cMemberVariable;
};

int main() {
   CWrapperObject<CObject> cWapperObject;
   return 0;
}

例 2:

#include <tuple>

template<class ... TS> class CObject {
   std::tuple<TS ...> cTuple;
};

template<template<typename ... TS> class TMPL_CLASS_T>
class CWrapperObject {
    TMPL_CLASS_T<double, float, TS ...> cMemberVariable;
};

int main() {
   CWrapperObject<CObject<short, int>> cWapperObject;
   return 0;
}
4

1 に答える 1