I'm trying to compile following code :
#include <iostream>
template<class T> struct Container1;//forward declaration
template<class T> struct Container2;//forward declaration
template<class Container,class Type>
using _Make_Container=typename Container<Type>;
template<class T>
struct Container1
{};
template<class T>
struct Container2
{};
int main()
{
_Make_Container<Container1,int> a;
}
Which give me some errors:
expected nested-name-specifier before 'Container'
using _Make_Container=typename Container<Type>;
^
error: 'Container' is not a template
It seems OK to me because we send Container1
and int
to using
Then it becomes :
using _Make_Container=typename Container1<int>;
//then
Container1<int> a;
I can't understand the reason for that errors !! Any idea?
Is there any way for making that works ?