------- 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