added broken overload resolution workarounds for metrowerks

[SVN r26973]
This commit is contained in:
Jonathan Turkanis
2005-01-31 23:16:32 +00:00
parent 4190d45407
commit 9139ec4137
2 changed files with 22 additions and 11 deletions

View File

@@ -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

View File

@@ -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