From b130ceca3a1114bbbc6ecffa07a700a485fbec83 Mon Sep 17 00:00:00 2001 From: Jonathan Turkanis Date: Tue, 17 May 2005 21:37:25 +0000 Subject: [PATCH] replaced w/ contents of is_custom.hpp [SVN r28995] --- include/boost/iostreams/operations_fwd.hpp | 100 +++------------------ 1 file changed, 13 insertions(+), 87 deletions(-) diff --git a/include/boost/iostreams/operations_fwd.hpp b/include/boost/iostreams/operations_fwd.hpp index d040ba9..0616672 100755 --- a/include/boost/iostreams/operations_fwd.hpp +++ b/include/boost/iostreams/operations_fwd.hpp @@ -11,103 +11,29 @@ # pragma once #endif -#include // pair. -#include // DEDUCED_TYPENAME. -#include -#include // stream_offset. -#include +#include +#include -namespace boost { namespace iostreams { +namespace boost { namespace iostreams { -template +template struct operations; namespace detail { -template struct read_device_impl; -template struct write_device_impl; -template struct read_filter_impl; -template struct write_filter_impl; -template struct input_sequence_impl; -template struct output_sequence_impl; -template struct seek_impl; -template struct close_impl; -template struct flush_device_impl; -template struct flush_filter_impl; -template struct imbue_impl; -template struct optimal_buffer_size_impl; +struct custom_tag { }; -template<> struct read_device_impl { typedef int type; }; -template<> struct write_device_impl { typedef int type; }; -template<> struct read_filter_impl { typedef int type; }; -template<> struct write_filter_impl { typedef int type; }; -template<> struct input_sequence_impl { typedef int type; }; -template<> struct output_sequence_impl { typedef int type; }; -template<> struct seek_impl { typedef int type; }; -template<> struct close_impl { typedef int type; }; -template<> struct flush_device_impl { typedef int type; }; -template<> struct flush_filter_impl { typedef int type; }; -template<> struct imbue_impl { typedef int type; }; -template<> struct optimal_buffer_size_impl { typedef int type; }; +template +struct is_custom + : mpl::not_< + is_base_and_derived< custom_tag, operations > + > + { }; } // End namespace detail. -template -typename io_int::type get(T&); - -template -std::streamsize read(T&, typename io_char::type*, std::streamsize); - -template -std::streamsize read(T&, Source&, typename io_char::type*, std::streamsize); - -template -bool putback(T&, typename io_char::type); - -template -bool put(T&, typename io_char::type); - -template -std::streamsize write(T&, const typename io_char::type*, std::streamsize); - -template -std::streamsize write(T&, Sink&, const typename io_char::type*, std::streamsize); - -template -std::streampos seek( T& t, stream_offset off, BOOST_IOS::seekdir way, - BOOST_IOS::openmode which = BOOST_IOS::in | BOOST_IOS::out ); - -template -std::pair< - BOOST_DEDUCED_TYPENAME io_char::type*, - BOOST_DEDUCED_TYPENAME io_char::type* -> -input_sequence(T&); - -template -std::pair< - BOOST_DEDUCED_TYPENAME io_char::type*, - BOOST_DEDUCED_TYPENAME io_char::type* -> -output_sequence(T&); - -template -void close(T&, BOOST_IOS::openmode); - -template -void close(T&, Sink& snk, BOOST_IOS::openmode); - -template -bool flush(T&); - -template -bool flush(T&, Sink&); - -template -void imbue(T&, const Locale&); - -template -std::streamsize optimal_buffer_size(const T&); +template +struct operations : detail::custom_tag { }; } } // End namespaces iostreams, boost.