annotate DEPENDENCIES/generic/include/boost/random/detail/operators.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /* boost random/detail/operators.hpp header file
Chris@16 2 *
Chris@16 3 * Copyright Steven Watanabe 2010-2011
Chris@16 4 * Distributed under the Boost Software License, Version 1.0. (See
Chris@16 5 * accompanying file LICENSE_1_0.txt or copy at
Chris@16 6 * http://www.boost.org/LICENSE_1_0.txt)
Chris@16 7 *
Chris@16 8 * See http://www.boost.org for most recent version including documentation.
Chris@16 9 *
Chris@101 10 * $Id$
Chris@16 11 */
Chris@16 12
Chris@16 13 #ifndef BOOST_RANDOM_DETAIL_OPERATORS_HPP
Chris@16 14 #define BOOST_RANDOM_DETAIL_OPERATORS_HPP
Chris@16 15
Chris@16 16 #include <boost/random/detail/config.hpp>
Chris@16 17 #include <boost/detail/workaround.hpp>
Chris@16 18
Chris@16 19 #if BOOST_WORKAROUND(BOOST_MSVC, <= 1310) \
Chris@16 20 || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100))
Chris@16 21
Chris@16 22 #define BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t) \
Chris@16 23 template<class CharT, class Traits> \
Chris@16 24 friend std::basic_ostream<CharT,Traits>& \
Chris@16 25 operator<<(std::basic_ostream<CharT,Traits>& os, const T& t) { \
Chris@16 26 t.print(os, t); \
Chris@16 27 return os; \
Chris@16 28 } \
Chris@16 29 template<class CharT, class Traits> \
Chris@16 30 static std::basic_ostream<CharT,Traits>& \
Chris@16 31 print(std::basic_ostream<CharT,Traits>& os, const T& t)
Chris@16 32
Chris@16 33 #define BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t) \
Chris@16 34 template<class CharT, class Traits> \
Chris@16 35 friend std::basic_istream<CharT,Traits>& \
Chris@16 36 operator>>(std::basic_istream<CharT,Traits>& is, T& t) { \
Chris@16 37 t.read(is, t); \
Chris@16 38 return is; \
Chris@16 39 } \
Chris@16 40 template<class CharT, class Traits> \
Chris@16 41 static std::basic_istream<CharT,Traits>& \
Chris@16 42 read(std::basic_istream<CharT,Traits>& is, T& t)
Chris@16 43
Chris@16 44 #endif
Chris@16 45
Chris@16 46 #if defined(__BORLANDC__)
Chris@16 47
Chris@16 48 #define BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs) \
Chris@16 49 bool operator==(const T& rhs) const \
Chris@16 50 { return T::is_equal(*this, rhs); } \
Chris@16 51 static bool is_equal(const T& lhs, const T& rhs)
Chris@16 52
Chris@16 53 #define BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T) \
Chris@16 54 bool operator!=(const T& rhs) const \
Chris@16 55 { return !T::is_equal(*this, rhs); }
Chris@16 56
Chris@16 57 #endif
Chris@16 58
Chris@16 59 #ifndef BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR
Chris@16 60 #define BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t) \
Chris@16 61 template<class CharT, class Traits> \
Chris@16 62 friend std::basic_ostream<CharT,Traits>& \
Chris@16 63 operator<<(std::basic_ostream<CharT,Traits>& os, const T& t)
Chris@16 64 #endif
Chris@16 65
Chris@16 66 #ifndef BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR
Chris@16 67 #define BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t) \
Chris@16 68 template<class CharT, class Traits> \
Chris@16 69 friend std::basic_istream<CharT,Traits>& \
Chris@16 70 operator>>(std::basic_istream<CharT,Traits>& is, T& t)
Chris@16 71 #endif
Chris@16 72
Chris@16 73 #ifndef BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR
Chris@16 74 #define BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs) \
Chris@16 75 friend bool operator==(const T& lhs, const T& rhs)
Chris@16 76 #endif
Chris@16 77
Chris@16 78 #ifndef BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR
Chris@16 79 #define BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T) \
Chris@16 80 friend bool operator!=(const T& lhs, const T& rhs) \
Chris@16 81 { return !(lhs == rhs); }
Chris@16 82 #endif
Chris@16 83
Chris@16 84 #endif