Это ничем не отличается от объявления чего-либо еще, за исключением того, что вы должны правильно определить пространство имен:
namespace mynamespace{
template <class T> class A;
}
A
объявлено в mynamespace
, поэтому вы должны указать его как таковой.
Если вы действительно хотите избежать явного указания пространства имен каждый раз, добавьте объявление using
:
namespace mynamespace2{
using mynamespace::A;
class B{
B();
A<int>* a_attribute; // for use over here
};
}
После объявления using
вы можете просто обратиться к A
в любом месте mynamespace2
.
Обратите внимание, что вы все равно должны заранее объявить шаблон в другом пространстве имен, прежде чем извлекать его с помощью using
.