diff --git a/include/boost/fiber/algorithm.hpp b/include/boost/fiber/algorithm.hpp index 1134868e..8e8fcb07 100644 --- a/include/boost/fiber/algorithm.hpp +++ b/include/boost/fiber/algorithm.hpp @@ -25,7 +25,7 @@ namespace boost { namespace fibers { -struct BOOST_FIBERS_DECL algorithm : private noncopyable +struct algorithm : private noncopyable { virtual void spawn( detail::fiber_base::ptr_t const&) = 0; diff --git a/include/boost/fiber/asio/io_service.hpp b/include/boost/fiber/asio/io_service.hpp index 3528b6b0..bf9f9def 100644 --- a/include/boost/fiber/asio/io_service.hpp +++ b/include/boost/fiber/asio/io_service.hpp @@ -23,7 +23,7 @@ # if defined(BOOST_MSVC) # pragma warning(push) -# pragma warning(disable:4251) +# pragma warning(disable:4251 4275) # endif namespace boost { diff --git a/include/boost/fiber/detail/scheduler.hpp b/include/boost/fiber/detail/scheduler.hpp index cfe2cc16..495dd64f 100644 --- a/include/boost/fiber/detail/scheduler.hpp +++ b/include/boost/fiber/detail/scheduler.hpp @@ -79,7 +79,7 @@ public: } #endif -class BOOST_FIBERS_DECL scheduler : private noncopyable +class scheduler : private noncopyable { private: #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) || \ @@ -97,9 +97,15 @@ public: return f.impl_; } - static algorithm * instance() BOOST_NOEXCEPT; + static algorithm * instance() BOOST_NOEXCEPT + { return instance_; } - static algorithm * replace( algorithm *) BOOST_NOEXCEPT; + static algorithm * replace( algorithm * other) BOOST_NOEXCEPT + { + algorithm * old = instance_; + instance_ = other; + return old; + } }; }}} diff --git a/include/boost/fiber/fiber_group.hpp b/include/boost/fiber/fiber_group.hpp index ac0a3627..6140c2b7 100644 --- a/include/boost/fiber/fiber_group.hpp +++ b/include/boost/fiber/fiber_group.hpp @@ -23,6 +23,11 @@ # include BOOST_ABI_PREFIX #endif +# if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4251 4275) +# endif + namespace boost { namespace fibers { @@ -87,6 +92,10 @@ private: }} +# if defined(BOOST_MSVC) +# pragma warning(pop) +# endif + #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif diff --git a/src/detail/scheduler.cpp b/src/detail/scheduler.cpp index 8e7ab092..bf27e25d 100644 --- a/src/detail/scheduler.cpp +++ b/src/detail/scheduler.cpp @@ -25,18 +25,6 @@ detail::thread_local_ptr scheduler::instance_ = 0; __thread algorithm * scheduler::instance_ = 0; #endif -algorithm * -scheduler::instance() BOOST_NOEXCEPT -{ return instance_; } - -algorithm * -scheduler::replace( algorithm * other) BOOST_NOEXCEPT -{ - algorithm * old = instance_; - instance_ = other; - return old; -} - }}} #ifdef BOOST_HAS_ABI_HEADERS diff --git a/src/future.cpp b/src/future.cpp old mode 100755 new mode 100644