annotate DEPENDENCIES/generic/include/boost/flyweight/detail/pp_perfect_fwd.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@101 1 /* Copyright 2006-2014 Joaquin M Lopez Munoz.
Chris@16 2 * Distributed under the Boost Software License, Version 1.0.
Chris@16 3 * (See accompanying file LICENSE_1_0.txt or copy at
Chris@16 4 * http://www.boost.org/LICENSE_1_0.txt)
Chris@16 5 *
Chris@16 6 * See http://www.boost.org/libs/flyweight for library home page.
Chris@16 7 */
Chris@16 8
Chris@101 9 #ifndef BOOST_FLYWEIGHT_DETAIL_PP_PERFECT_FWD_HPP
Chris@101 10 #define BOOST_FLYWEIGHT_DETAIL_PP_PERFECT_FWD_HPP
Chris@101 11
Chris@101 12 #if defined(_MSC_VER)
Chris@101 13 #pragma once
Chris@101 14 #endif
Chris@101 15
Chris@101 16 #include <boost/config.hpp>
Chris@101 17
Chris@101 18 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
Chris@101 19
Chris@101 20 #define BOOST_FLYWEIGHT_PERFECT_FWD_0(name,body) \
Chris@101 21 name()body((FORWARD)(0))
Chris@16 22
Chris@16 23 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=1
Chris@101 24 #define BOOST_FLYWEIGHT_PERFECT_FWD_1(name,body) \
Chris@101 25 template<typename T0> name(T0&& t0)body((FORWARD)(1))
Chris@16 26 #endif
Chris@16 27
Chris@16 28 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=2
Chris@101 29 #define BOOST_FLYWEIGHT_PERFECT_FWD_2(name,body) \
Chris@101 30 template<typename T0,typename T1> name(T0&& t0,T1&& t1)body((FORWARD)(2))
Chris@16 31 #endif
Chris@16 32
Chris@16 33 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=3
Chris@101 34 #define BOOST_FLYWEIGHT_PERFECT_FWD_3(name,body) \
Chris@101 35 template<typename T0,typename T1,typename T2> name(T0&& t0,T1&& t1,T2&& t2)body((FORWARD)(3))
Chris@16 36 #endif
Chris@16 37
Chris@16 38 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=4
Chris@101 39 #define BOOST_FLYWEIGHT_PERFECT_FWD_4(name,body) \
Chris@101 40 template<typename T0,typename T1,typename T2,typename T3> name(T0&& t0,T1&& t1,T2&& t2,T3&& t3)body((FORWARD)(4))
Chris@16 41 #endif
Chris@16 42
Chris@16 43 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=5
Chris@101 44 #define BOOST_FLYWEIGHT_PERFECT_FWD_5(name,body) \
Chris@101 45 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0&& t0,T1&& t1,T2&& t2,T3&& t3,T4&& t4)body((FORWARD)(5))
Chris@101 46 #endif
Chris@101 47
Chris@101 48 #else
Chris@101 49
Chris@101 50 /* no rvalue refs -> [const] Tn& overloads */
Chris@101 51
Chris@101 52 #define BOOST_FLYWEIGHT_PERFECT_FWD_0(name,body) \
Chris@101 53 name()body((ENUM)(0))
Chris@101 54
Chris@101 55 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=1
Chris@101 56 #define BOOST_FLYWEIGHT_PERFECT_FWD_1(name,body) \
Chris@101 57 template<typename T0> name(T0& t0)body((ENUM)(1))\
Chris@101 58 template<typename T0> name(const T0& t0)body((ENUM)(1))
Chris@101 59 #endif
Chris@101 60
Chris@101 61 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=2
Chris@101 62 #define BOOST_FLYWEIGHT_PERFECT_FWD_2(name,body) \
Chris@101 63 template<typename T0,typename T1> name(T0& t0,T1& t1)body((ENUM)(2))\
Chris@101 64 template<typename T0,typename T1> name(T0& t0,const T1& t1)body((ENUM)(2))\
Chris@101 65 template<typename T0,typename T1> name(const T0& t0,T1& t1)body((ENUM)(2))\
Chris@101 66 template<typename T0,typename T1> name(const T0& t0,const T1& t1)body((ENUM)(2))
Chris@101 67 #endif
Chris@101 68
Chris@101 69 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=3
Chris@101 70 #define BOOST_FLYWEIGHT_PERFECT_FWD_3(name,body) \
Chris@101 71 template<typename T0,typename T1,typename T2> name(T0& t0,T1& t1,T2& t2)body((ENUM)(3))\
Chris@101 72 template<typename T0,typename T1,typename T2> name(T0& t0,T1& t1,const T2& t2)body((ENUM)(3))\
Chris@101 73 template<typename T0,typename T1,typename T2> name(T0& t0,const T1& t1,T2& t2)body((ENUM)(3))\
Chris@101 74 template<typename T0,typename T1,typename T2> name(T0& t0,const T1& t1,const T2& t2)body((ENUM)(3))\
Chris@101 75 template<typename T0,typename T1,typename T2> name(const T0& t0,T1& t1,T2& t2)body((ENUM)(3))\
Chris@101 76 template<typename T0,typename T1,typename T2> name(const T0& t0,T1& t1,const T2& t2)body((ENUM)(3))\
Chris@101 77 template<typename T0,typename T1,typename T2> name(const T0& t0,const T1& t1,T2& t2)body((ENUM)(3))\
Chris@101 78 template<typename T0,typename T1,typename T2> name(const T0& t0,const T1& t1,const T2& t2)body((ENUM)(3))
Chris@101 79 #endif
Chris@101 80
Chris@101 81 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=4
Chris@101 82 #define BOOST_FLYWEIGHT_PERFECT_FWD_4(name,body) \
Chris@101 83 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,T1& t1,T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 84 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,T1& t1,T2& t2,const T3& t3)body((ENUM)(4))\
Chris@101 85 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,T1& t1,const T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 86 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,T1& t1,const T2& t2,const T3& t3)body((ENUM)(4))\
Chris@101 87 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,const T1& t1,T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 88 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,const T1& t1,T2& t2,const T3& t3)body((ENUM)(4))\
Chris@101 89 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,const T1& t1,const T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 90 template<typename T0,typename T1,typename T2,typename T3> name(T0& t0,const T1& t1,const T2& t2,const T3& t3)body((ENUM)(4))\
Chris@101 91 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,T1& t1,T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 92 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,T1& t1,T2& t2,const T3& t3)body((ENUM)(4))\
Chris@101 93 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,T1& t1,const T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 94 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,T1& t1,const T2& t2,const T3& t3)body((ENUM)(4))\
Chris@101 95 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,const T1& t1,T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 96 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,const T1& t1,T2& t2,const T3& t3)body((ENUM)(4))\
Chris@101 97 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,const T1& t1,const T2& t2,T3& t3)body((ENUM)(4))\
Chris@101 98 template<typename T0,typename T1,typename T2,typename T3> name(const T0& t0,const T1& t1,const T2& t2,const T3& t3)body((ENUM)(4))
Chris@101 99 #endif
Chris@101 100
Chris@101 101 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS>=5
Chris@101 102 #define BOOST_FLYWEIGHT_PERFECT_FWD_5(name,body) \
Chris@101 103 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 104 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 105 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 106 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 107 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,const T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 108 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,const T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 109 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,const T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 110 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,T1& t1,const T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 111 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 112 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 113 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 114 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 115 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,const T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 116 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,const T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 117 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,const T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 118 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(T0& t0,const T1& t1,const T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 119 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 120 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 121 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 122 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 123 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,const T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 124 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,const T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 125 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,const T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 126 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,T1& t1,const T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 127 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 128 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 129 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 130 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 131 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,const T2& t2,T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 132 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,const T2& t2,T3& t3,const T4& t4)body((ENUM)(5))\
Chris@101 133 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,const T2& t2,const T3& t3,T4& t4)body((ENUM)(5))\
Chris@101 134 template<typename T0,typename T1,typename T2,typename T3,typename T4> name(const T0& t0,const T1& t1,const T2& t2,const T3& t3,const T4& t4)body((ENUM)(5))
Chris@101 135 #endif
Chris@101 136
Chris@16 137 #endif
Chris@16 138
Chris@16 139 #if BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS==0
Chris@101 140 #define BOOST_FLYWEIGHT_PERFECT_FWD_WITH_ARGS(name,body)
Chris@16 141 #elif BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS==1
Chris@101 142 #define BOOST_FLYWEIGHT_PERFECT_FWD_WITH_ARGS(name,body) \
Chris@101 143 BOOST_FLYWEIGHT_PERFECT_FWD_1(name,body)
Chris@16 144 #elif BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS==2
Chris@101 145 #define BOOST_FLYWEIGHT_PERFECT_FWD_WITH_ARGS(name,body) \
Chris@101 146 BOOST_FLYWEIGHT_PERFECT_FWD_1(name,body) \
Chris@101 147 BOOST_FLYWEIGHT_PERFECT_FWD_2(name,body)
Chris@16 148 #elif BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS==3
Chris@101 149 #define BOOST_FLYWEIGHT_PERFECT_FWD_WITH_ARGS(name,body) \
Chris@101 150 BOOST_FLYWEIGHT_PERFECT_FWD_1(name,body) \
Chris@101 151 BOOST_FLYWEIGHT_PERFECT_FWD_2(name,body) \
Chris@101 152 BOOST_FLYWEIGHT_PERFECT_FWD_3(name,body)
Chris@16 153 #elif BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS==4
Chris@101 154 #define BOOST_FLYWEIGHT_PERFECT_FWD_WITH_ARGS(name,body) \
Chris@101 155 BOOST_FLYWEIGHT_PERFECT_FWD_1(name,body) \
Chris@101 156 BOOST_FLYWEIGHT_PERFECT_FWD_2(name,body) \
Chris@101 157 BOOST_FLYWEIGHT_PERFECT_FWD_3(name,body) \
Chris@101 158 BOOST_FLYWEIGHT_PERFECT_FWD_4(name,body)
Chris@16 159 #else /* BOOST_FLYWEIGHT_LIMIT_PERFECT_FWD_ARGS==5 */
Chris@101 160 #define BOOST_FLYWEIGHT_PERFECT_FWD_WITH_ARGS(name,body) \
Chris@101 161 BOOST_FLYWEIGHT_PERFECT_FWD_1(name,body) \
Chris@101 162 BOOST_FLYWEIGHT_PERFECT_FWD_2(name,body) \
Chris@101 163 BOOST_FLYWEIGHT_PERFECT_FWD_3(name,body) \
Chris@101 164 BOOST_FLYWEIGHT_PERFECT_FWD_4(name,body) \
Chris@101 165 BOOST_FLYWEIGHT_PERFECT_FWD_5(name,body)
Chris@16 166 #endif
Chris@16 167
Chris@101 168 #define BOOST_FLYWEIGHT_PERFECT_FWD(name,body) \
Chris@101 169 BOOST_FLYWEIGHT_PERFECT_FWD_0(name,body) \
Chris@101 170 BOOST_FLYWEIGHT_PERFECT_FWD_WITH_ARGS(name,body)
Chris@16 171
Chris@16 172 #endif