diff --git a/include/boost/nowide/config.hpp b/include/boost/nowide/config.hpp index 7495c33..6cadc11 100644 --- a/include/boost/nowide/config.hpp +++ b/include/boost/nowide/config.hpp @@ -11,23 +11,15 @@ #include #include -#ifndef BOOST_SYMBOL_VISIBLE -# define BOOST_SYMBOL_VISIBLE -#endif - -#ifdef BOOST_HAS_DECLSPEC -# if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK) -# ifdef BOOST_NOWIDE_SOURCE -# define BOOST_NOWIDE_DECL BOOST_SYMBOL_EXPORT -# else -# define BOOST_NOWIDE_DECL BOOST_SYMBOL_IMPORT -# endif // BOOST_NOWIDE_SOURCE -# endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC - -#ifndef BOOST_NOWIDE_DECL -# define BOOST_NOWIDE_DECL -#endif +#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK) +# ifdef BOOST_NOWIDE_SOURCE +# define BOOST_NOWIDE_DECL BOOST_SYMBOL_EXPORT +# else +# define BOOST_NOWIDE_DECL BOOST_SYMBOL_IMPORT +# endif // BOOST_NOWIDE_SOURCE +#else +# define BOOST_NOWIDE_DECL +#endif // DYN_LINK // // Automatically link to the correct build variant where possible. diff --git a/include/boost/nowide/iostream.hpp b/include/boost/nowide/iostream.hpp index 6ab004a..a707668 100644 --- a/include/boost/nowide/iostream.hpp +++ b/include/boost/nowide/iostream.hpp @@ -14,6 +14,8 @@ #include #include +#include // must be the last #include + #ifdef BOOST_MSVC # pragma warning(push) # pragma warning(disable : 4251) @@ -52,7 +54,6 @@ namespace nowide { winconsole_istream(); ~winconsole_istream(); private: - struct data; boost::scoped_ptr d; }; } // details @@ -93,6 +94,7 @@ namespace nowide { # pragma warning(pop) #endif +#include // pops abi_prefix.hpp pragmas #endif /// diff --git a/src/iostream.cpp b/src/iostream.cpp index c71a4e5..f955551 100644 --- a/src/iostream.cpp +++ b/src/iostream.cpp @@ -7,12 +7,21 @@ // #define BOOST_NOWIDE_SOURCE #include + +#ifndef BOOST_WINDOWS + +namespace boost { +namespace nowide { + BOOST_NOWIDE_DECL void dummy_exported_function(){} +} +} + +#else + #include #include #include -#ifdef BOOST_WINDOWS - #ifndef NOMINMAX # define NOMINMAX #endif @@ -237,10 +246,10 @@ namespace details { } // details -BOOST_NOWIDE_DECL details::winconsole_istream cin; -BOOST_NOWIDE_DECL details::winconsole_ostream cout(1); -BOOST_NOWIDE_DECL details::winconsole_ostream cerr(2); -BOOST_NOWIDE_DECL details::winconsole_ostream clog(2); +details::winconsole_istream cin; +details::winconsole_ostream cout(1); +details::winconsole_ostream cerr(2); +details::winconsole_ostream clog(2); namespace { struct initialize {