У меня есть конструктор
A::A(const Name& n,const IRole& r)
: ...
{ }
И вспомогательная функция, которая использует конструктор
AP<A> A::Create(const Name& n, const IRole& r)
{
return new A(n,r);
}
И g ++ выдает мне сообщения об ошибках при компиляции этого кода.
error: no matching function for call to ‘AIR::AP<AIR::A>::AP(AIR::AP<AIR::A>)’
note: candidates are: AIR::AP<T>::AP(AIR::AP<U>&) [with U = AIR::A, T = AIR::A]
note: AIR::AP<T>::AP(AIR::AP<T>&) [with T = AIR::A]
note: AIR::AP<T>::AP(T*) [with T = AIR::A]
error: initializing temporary from result of ‘AIR::AP<T>::AP(T*) [with T = AIR::A]’
Что не так с этим кодом?
ДОБАВЛЕНО
AP<A> A::Create(const Name& n, const IRole& r)
{
AP<A> port(new A(n,r));
return port;
}
Кажется, чтобы решить эту проблему.