enable_if_stream.hpp 1.2 KB

1234567891011121314151617181920212223242526272829303132
  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/utility/enable_if.hpp>
  13. #include <boost/iostreams/traits_fwd.hpp> // is_std_io.
  14. #if !defined(BOOST_NO_SFINAE) && \
  15. !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))
  16. # define BOOST_IOSTREAMS_ENABLE_IF_STREAM(T) \
  17. , typename boost::enable_if< boost::iostreams::is_std_io<T> >::type* = 0 \
  18. /**/
  19. # define BOOST_IOSTREAMS_DISABLE_IF_STREAM(T) \
  20. , typename boost::disable_if< boost::iostreams::is_std_io<T> >::type* = 0 \
  21. /**/
  22. #else
  23. # define BOOST_IOSTREAMS_ENABLE_IF_STREAM(T)
  24. # define BOOST_IOSTREAMS_DISABLE_IF_STREAM(T)
  25. #endif
  26. #endif // #ifndef BOOST_IOSTREAMS_DETAIL_ENABLE_IF_STREAM_HPP_INCLUDED