I have some template code that I would
prefer to have stored in a CPP file instead of inline in the header. I know this can be
done as long as you know which template types will be used. For
example:
.h
file
class
foo
{
public:
template T>
void do(const T&
t);
};
.cpp
file
template
void foo::do(const T& t)
{
// Do
something with t
}
template void
foo::do(const int&);
template void
foo::do(const
std::string&);
Note
the last two lines - the foo::do template function is only used with ints and
std::strings, so those definitions mean the app will
link.
My question is - is this a nasty hack or
will this work with other compilers/linkers? I am only using this code with VS2008 at
the moment but will be wanting to port to other environments.
No comments:
Post a Comment