
When compiling a very simple example for the regex library, I've got the following error:
A short investigation points to the following code in the instances.hpp file:
As a temporary solution, I have just uncommented the following line in boost/regex/user.hpp:
#define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
Now the simple program compiles and works fine. What influence will the above change in user.hpp have on bigger programs?
They'll take longer to compile, have bigger object files, and if you're linking to the shared library, be a larger program as well.
Is this a known problem?
It is now :-) I can only reproduce this when compiling with -pedantic, the following fix will be going into cvs shortly: Index: instances.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/regex/v4/instances.hpp,v retrieving revision 1.10 diff -u -r1.10 instances.hpp --- instances.hpp 12 Mar 2004 13:12:25 -0000 1.10 +++ instances.hpp 29 Nov 2004 13:42:52 -0000 @@ -60,7 +60,11 @@ #elif (defined(BOOST_MSVC) && defined(_MSC_EXTENSIONS)) || defined(__GNUC__) # ifndef BOOST_REGEX_INSTANTIATE -# define template extern template +# ifdef __GNUC__ +# define template __extension__ extern template +# else +# define template extern template +# endif # endif # ifdef BOOST_MSVC John.