When compiled, this:
template <typename T>
struct ConstArray {
///MEMBERS
T* data_;
T* end_;
///Constructors
ConstArray(T* data, T* end) : data_(data), end_(end) {}
};
template struct ConstArray<const char>;
gives me (nm -C *.o
):
0000000000000000 W ConstArray<char const>::ConstArray(char const*, char const*)
0000000000000000 W ConstArray<char const>::ConstArray(char const*, char const*)
0000000000000000 n ConstArray<char const>::ConstArray(char const*, char const*)
I seem to get three symbols (2 W + 1 n (don't know what that is)) for each constructor I define. Functions seem to give me just one as expected. Could somebody please explain why this is or point me to an explanation?