Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/random/detail/operators.hpp @ 75:a76b96026c2d
Update summarisation
author | Chris Cannam |
---|---|
date | Thu, 30 Oct 2014 13:25:15 +0000 |
parents | 2665513ce2d3 |
children | c530137014c0 |
line wrap: on
line source
/* boost random/detail/operators.hpp header file * * Copyright Steven Watanabe 2010-2011 * Distributed under the Boost Software License, Version 1.0. (See * accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * * See http://www.boost.org for most recent version including documentation. * * $Id: operators.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $ */ #ifndef BOOST_RANDOM_DETAIL_OPERATORS_HPP #define BOOST_RANDOM_DETAIL_OPERATORS_HPP #include <boost/random/detail/config.hpp> #include <boost/detail/workaround.hpp> #if BOOST_WORKAROUND(BOOST_MSVC, <= 1310) \ || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100)) #define BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t) \ template<class CharT, class Traits> \ friend std::basic_ostream<CharT,Traits>& \ operator<<(std::basic_ostream<CharT,Traits>& os, const T& t) { \ t.print(os, t); \ return os; \ } \ template<class CharT, class Traits> \ static std::basic_ostream<CharT,Traits>& \ print(std::basic_ostream<CharT,Traits>& os, const T& t) #define BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t) \ template<class CharT, class Traits> \ friend std::basic_istream<CharT,Traits>& \ operator>>(std::basic_istream<CharT,Traits>& is, T& t) { \ t.read(is, t); \ return is; \ } \ template<class CharT, class Traits> \ static std::basic_istream<CharT,Traits>& \ read(std::basic_istream<CharT,Traits>& is, T& t) #endif #if defined(__BORLANDC__) #define BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs) \ bool operator==(const T& rhs) const \ { return T::is_equal(*this, rhs); } \ static bool is_equal(const T& lhs, const T& rhs) #define BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T) \ bool operator!=(const T& rhs) const \ { return !T::is_equal(*this, rhs); } #endif #ifndef BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR #define BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t) \ template<class CharT, class Traits> \ friend std::basic_ostream<CharT,Traits>& \ operator<<(std::basic_ostream<CharT,Traits>& os, const T& t) #endif #ifndef BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR #define BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t) \ template<class CharT, class Traits> \ friend std::basic_istream<CharT,Traits>& \ operator>>(std::basic_istream<CharT,Traits>& is, T& t) #endif #ifndef BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR #define BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs) \ friend bool operator==(const T& lhs, const T& rhs) #endif #ifndef BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR #define BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T) \ friend bool operator!=(const T& lhs, const T& rhs) \ { return !(lhs == rhs); } #endif #endif