#include <cstdio>
#include <tuple>
using namespace std;
template<typename A,typename B> struct S{};
template<
template<typename...>typename T,typename... TArgs //这边很难理解,需要看tuple原型,辅助理解
,template<typename...>typename U,typename... UArgs
>
struct S<T<TArgs...>, U<UArgs...>> {};
int main()
{
S<int, float> s1;
S<tuple<int, char>, tuple<char, float>> s2;
return 0;
}
例子有点复杂,说实话,本人也是看了很久,最后查看了tuple的实现原型,才稍微看懂了一点点
template<class _This,
class... _Rest>
class tuple<_This, _Rest...>
: private tuple<_Rest...>
{
//....
}