Templates are making things so hard. I haven't got the syntax right, I've been trying for ages. I have a function called "createSphere" in a class called "ModelMngr" that I would like to be a friend of another class.
class ModelMngr
{public:
template <typename T_scalar>
static Sphere<T_scalar>* createSphere(T_scalar radius, int sides, int heightSegments, const String& name = "Sphere Primitive Mesh");
}
template <typename T_scalar>
class Sphere : public MeshBaseClass<T_scalar>
{public:
template <typename T> friend Sphere<T>* ModelMngr::createSphere(T radius, int sides, int heightSegments, const String& name = "Sphere Primitive Mesh");
}
I changed the T_scalar in the friend declaration to T because I was worried there would be a name conflict with the template argument of the enclosing class. Is there any conflict?