#include <iostream>

struct Outer
{
	template<typename T>
	struct Inner
	{
	};
	
	void f()
	{
		Inner<int> i1;
		Inner<double> i2;
	}
};

int main()
{
	Outer o;
	o.f();
}

template<>
struct Outer::Inner<double> 
{
};
