mirror of
https://github.com/boostorg/iostreams.git
synced 2026-02-26 16:52:24 +00:00
added broken overload resolution workarounds for metrowerks
[SVN r26973]
This commit is contained in:
@@ -14,15 +14,14 @@
|
||||
#include <istream>
|
||||
#include <ostream>
|
||||
#include <boost/iostreams/constants.hpp>
|
||||
#include <boost/iostreams/detail/config/overload_resolution.hpp>
|
||||
#include <boost/iostreams/detail/forward.hpp>
|
||||
#include <boost/iostreams/detail/select.hpp>
|
||||
#include <boost/iostreams/streambuf_facade.hpp>
|
||||
#include <boost/mpl/and.hpp>
|
||||
#include <boost/type_traits/is_convertible.hpp>
|
||||
|
||||
namespace boost { namespace iostreams {
|
||||
|
||||
namespace detail {
|
||||
namespace boost { namespace iostreams { namespace detail {
|
||||
|
||||
template<typename Device, typename Tr>
|
||||
struct stream_facade_traits {
|
||||
@@ -70,7 +69,13 @@ public:
|
||||
stream_facade_base() : pbase_type(), stream_type(&member) { }
|
||||
};
|
||||
|
||||
} // End namespace detail.
|
||||
} } } // End namespaces detail, iostreams, boost.
|
||||
|
||||
#ifdef BOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
|
||||
# include <boost/iostreams/detail/broken_overload_resolution/stream_facade.hpp>
|
||||
#else
|
||||
|
||||
namespace boost { namespace iostreams {
|
||||
|
||||
//
|
||||
// Template name: stream_facade.
|
||||
@@ -94,9 +99,6 @@ public:
|
||||
typedef BOOST_IOSTREAMS_CHAR_TYPE(Device) char_type;
|
||||
BOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
|
||||
private:
|
||||
typedef base_from_member<
|
||||
streambuf_facade<Device, Tr, Alloc>
|
||||
> pbase_type;
|
||||
typedef typename
|
||||
detail::stream_facade_traits<
|
||||
Device, Tr
|
||||
@@ -156,4 +158,6 @@ private:
|
||||
|
||||
} } // End namespaces iostreams, boost.
|
||||
|
||||
#endif // #ifdef BOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
|
||||
|
||||
#endif // #ifndef BOOST_IOSTREAMS_STREAM_FACADE_HPP_INCLUDED
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <boost/iostreams/detail/disable_warnings.hpp> // MSVC.
|
||||
|
||||
#include <memory> // allocator.
|
||||
#include <boost/iostreams/detail/config/overload_resolution.hpp>
|
||||
#include <boost/iostreams/detail/forward.hpp>
|
||||
#include <boost/iostreams/detail/param_type.hpp>
|
||||
#include <boost/iostreams/detail/streambuf/direct_streambuf.hpp>
|
||||
@@ -21,9 +22,7 @@
|
||||
#include <boost/iostreams/traits.hpp>
|
||||
#include <boost/type_traits/is_convertible.hpp>
|
||||
|
||||
namespace boost { namespace iostreams {
|
||||
|
||||
namespace detail {
|
||||
namespace boost { namespace iostreams { namespace detail {
|
||||
|
||||
template<typename T, typename Tr, typename Alloc, typename Mode>
|
||||
struct streambuf_facade_traits {
|
||||
@@ -35,7 +34,13 @@ struct streambuf_facade_traits {
|
||||
>::type type;
|
||||
};
|
||||
|
||||
} // End namespace detail.
|
||||
} } } // End namespaces detail, iostreams, boost
|
||||
|
||||
#ifdef BOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
|
||||
# include <boost/iostreams/detail/broken_overload_resolution/streambuf_facade.hpp>
|
||||
#else
|
||||
|
||||
namespace boost { namespace iostreams {
|
||||
|
||||
template< typename T,
|
||||
typename Tr =
|
||||
@@ -109,6 +114,8 @@ private:
|
||||
|
||||
} } // End namespaces iostreams, boost.
|
||||
|
||||
#endif // #ifdef BOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
|
||||
|
||||
#include <boost/iostreams/detail/enable_warnings.hpp> // MSVC.
|
||||
|
||||
#endif // #ifndef BOOST_IOSTREAMS_STREAMBUF_FACADE_HPP_INCLUDED
|
||||
|
||||
Reference in New Issue
Block a user