diff --git a/include/boost/iostreams/detail/broken_overload_resolution/streambuf_facade.hpp b/include/boost/iostreams/detail/broken_overload_resolution/streambuf_facade.hpp index 163916d..c6207ad 100755 --- a/include/boost/iostreams/detail/broken_overload_resolution/streambuf_facade.hpp +++ b/include/boost/iostreams/detail/broken_overload_resolution/streambuf_facade.hpp @@ -7,9 +7,10 @@ // No include guards -- file included by boost/iostreams/streambuf_facade.hpp // within include guards. -#include // MSVC. -#include // allocator. +#include // allocator. +#include // MSVC, DEDUCED_TYPENAME. +#include #include #include #include @@ -53,6 +54,7 @@ public: { open_impl(detail::forward(), u0, u1, u2); } +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------------// template streambuf_facade(U0& u0) { @@ -68,6 +70,7 @@ public: { open_impl(detail::forward(), u0, u1, u2); } +#endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------// template void open(const U0& u0) { @@ -83,6 +86,7 @@ public: { open_impl(detail::forward(), u0, u1, u2); } +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------------// template void open(U0& u0) { @@ -98,51 +102,58 @@ public: { open_impl(detail::forward(), u0, u1, u2); } +#endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------// private: template void open_impl(mpl::false_, const U0& u0) { base_type::open(u0, -1, -1); } +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------------// template void open_impl(mpl::false_, U0& u0) { base_type::open(detail::wrap(u0), -1, -1); } +#endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------// template void open_impl(mpl::true_, const U0& u0) { - base_type::open(Device(u0), -1, -1); + base_type::open(T(u0), -1, -1); } template void open_impl(mpl::false_, const U0& u0, const U1& u1) { base_type::open(u0, u1, -1); } +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------------// template void open_impl(mpl::false_, U0& u0, const U1& u1) { base_type::open(detail::wrap(u0), u1, -1); } +#endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------// template void open_impl(mpl::true_, const U0& u0, const U1& u1) { - base_type::open(Device(u0, u1), -1, -1); + base_type::open(T(u0, u1), -1, -1); } template void open_impl(mpl::false_, const U0& u0, const U1& u1, const U2& u2) { base_type::open(u0, u1, u2); } +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------------// template void open_impl(mpl::false_, U0& u0, const U1& u1, const U2& u2) { base_type::open(detail::wrap(u0), u1, u2); } +#endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------// template void open_impl(mpl::true_, const U0& u0, const U1& u1, const U2& u2) { - base_type::open(Device(u0, u1, u2), -1, -1); + base_type::open(T(u0, u1, u2), -1, -1); } void check_open() {