template<template<typename, typename> class T>
struct Process
{
};

template<int Value>
struct MakeTemplate
{
	template<typename T, typename U>
	struct Template
	{
	};
};

template<int Value>
struct Combine : Process<template MakeTemplate<Value>::Template>
{
};

int main()
{
	Combine<0>();
}