$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] BOOST_NO_EXTERN_TEMPLATE
From: Stefan Strasser (strasser_at_[hidden])
Date: 2010-05-27 01:56:12
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_macro_reference.html
[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