On Wed, Jun 06, 2007 at 02:46:14AM +0200, Markus Bernhardt wrote:
I get the following warnings when using a boost::thread_specific_ptr<unsigned int> and compiling with Sun Studio 11 (with latest patches) or Sun Studio 12 on Solaris x86.
Warning: Could not find source for boost::type_traits::ice_not<0>::value.
As far as I understood from the Solaris docs, this warning is harmless. The SunCC compiler has a "smart" template-compilation model which allows you to only DECLARE template classes in X.h, and the compiler will automatically look for definitions in X.cc. If X.cc does not exist, it emits the warning. This "searching" process is fully described in the manual. I get it even on some of my own code, but it works when run. Look at sections 7.5 and 5.2 in the following links: http://docs.sun.com/source/819-3690/Compiling_Templates.html http://docs.sun.com/source/819-3690/Program_Org.html#24618 It seems that the option -template=no%extdef should help (-template=extdef is the default).