------- Additional Comments From yanliu at ca dot ibm dot com 2004-11-29 22:47 ------- The point that I am trying to make here is the definition of _S_get_c_name() is not in the STL header file, neither in the libstdc++ libarary. For example, I can still use the following example to get the same linking error: #include <ios> template <typename T> class A: public std::messages<T> { };
int main() { A<int> obj; } G++ doesn't use the function definition if there is no template instantiation/specialization involves. That is the possible reason why g++ compiles file with including <ios> header file. My question here is shouldn't the definition be included either in the libstdc++ library or defined in the STL header? If this is a library problem, where should I open a bug report? This is a new change in the STL header file that appears in gcc 3.4. The _S_get_c_name was declared as: char* _S_get_c_name [2] in gcc 3.3. thanks. -- What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|INVALID | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18684