diff --git a/src/wc_regex_traits.cpp b/src/wc_regex_traits.cpp index 1de3dee6..393b2d7f 100644 --- a/src/wc_regex_traits.cpp +++ b/src/wc_regex_traits.cpp @@ -23,7 +23,8 @@ #include #include -#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) +#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) \ + && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) || defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)) // // This is a horrible workaround, but without declaring these symbols extern we get // duplicate symbol errors when linking if the application is built without @@ -38,7 +39,7 @@ namespace std{ #if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -template BOOST_REGEX_STDLIB_DECL allocator::allocator(); +template class BOOST_REGEX_STDLIB_DECL allocator; template class BOOST_REGEX_STDLIB_DECL _String_val >; template class BOOST_REGEX_STDLIB_DECL basic_string, allocator >;