テンプレート テンプレートを介して渡される引数のリストを拡張しようとしています。最初の例は機能しますが、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;
}