
Hi, Boost.Config defines the macro BOOST_NO_EXTERN_TEMPLATE, which probably [1] refers to suppressing the instantiation of a template using the "extern" keyword. This is part of the C++0x draft but has long been implemented by several compilers, including MSVC[2] and GCC[3]. BOOST_NO_EXTERN_TEMPLATE is still defined for both compilers, why is that? do those implementations differ from the proposed C++0x behaviour[4], so the macro is defined because it refers to a C++0x feature? Or is this a bug? Is using "extern template" recommended for boost libraries (under construction)? specifically, the library lends itself to seperate precompiled source and started out as such, but making it more configurable turned seperate source code into templates and increased compile time. the default use case (which was the only use case before) could still be compiled seperately if "extern template" is available. [1] the documentation says the macro indicates no support for explicit instantiation. I assume this is a documentation bug, because of its name and it's listed as a C++0x feature: http://www.boost.org/doc/libs/1_43_0/libs/config/doc/html/boost_config/boost... [2] http://msdn.microsoft.com/en-us/library/by56e477.aspx [3] http://gcc.gnu.org/onlinedocs/gcc/Template-Instantiation.html [4] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm