So in writing a C++ template class, I have defined a method that returns an object of the templated type, as such:
template class Foo { public
Sounds OK, if the class has no copy constructor, you will not be able to return it anyway.