Undefined reference to C++ template static data members

awatt awatt@ipwireless.com
Thu Jun 10 13:56:00 GMT 2010

Good afternoon.

I am attempting to compile some of our old template code with GCC 4.2.3. The
compilation stage is complete, however when I link I see some undefined
references to the template class static data members. So far I have been
unable to resolve these issues.

In function `ServiceManager<DiffservService, DiffservServiceId,
../../../incl/ServiceManager.cxx:278: undefined reference to
`ServiceManager<DiffservService, DiffservServiceId, 100ul>::s_used'

In the source code we attempt to initialise this static member as follows:

template <class Service, class ServiceId, UOPT16 NumberOfServices> Service*
ServiceManager<Service, ServiceId, NumberOfServices>::s_used = 0;

There does not seem to be a undefined reference for the non static member.

Does anyone know how to fix this?



View this message in context: http://old.nabble.com/Undefined-reference-to-C%2B%2B-template-static-data-members-tp28841884p28841884.html
Sent from the gcc - Help mailing list archive at Nabble.com.

More information about the Gcc-help mailing list