enable_if_stream.hpp 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. // (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
  2. // (C) Copyright 2003-2007 Jonathan Turkanis
  3. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
  5. // See http://www.boost.org/libs/iostreams for documentation.
  6. #ifndef BOOST_IOSTREAMS_DETAIL_ENABLE_IF_STREAM_HPP_INCLUDED
  7. #define BOOST_IOSTREAMS_DETAIL_ENABLE_IF_STREAM_HPP_INCLUDED
  8. #if defined(_MSC_VER)
  9. # pragma once
  10. #endif
  11. #include <boost/config.hpp> // BOOST_NO_SFINAE.
  12. #include <boost/config/workaround.hpp>
  13. #include <boost/utility/enable_if.hpp>
  14. #include <boost/iostreams/traits_fwd.hpp> // is_std_io.
  15. #if !defined(BOOST_NO_SFINAE) && \
  16. !BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x592))
  17. # define BOOST_IOSTREAMS_ENABLE_IF_STREAM(T) \
  18. , typename boost::enable_if< boost::iostreams::is_std_io<T> >::type* = 0 \
  19. /**/
  20. # define BOOST_IOSTREAMS_DISABLE_IF_STREAM(T) \
  21. , typename boost::disable_if< boost::iostreams::is_std_io<T> >::type* = 0 \
  22. /**/
  23. #else
  24. # define BOOST_IOSTREAMS_ENABLE_IF_STREAM(T)
  25. # define BOOST_IOSTREAMS_DISABLE_IF_STREAM(T)
  26. #endif
  27. #endif // #ifndef BOOST_IOSTREAMS_DETAIL_ENABLE_IF_STREAM_HPP_INCLUDED