I read about the Injected Class Name and they showed such an example:
template <template<typename> class TT> class X
{
};
template<typename T> class C {
C* a;
C<void>& b;
X<C> c;
X<::C> d;
};
And I'm not sure I understand how it works correctly .For example the line :
X<C> c;
am I right that this is equivalent to X<C<T>> c; ?
But most of all I don't understand what it means X<::C> d;
If it sees the class template definition then what will it substitute instead of T? I will be glad to receive answers