]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/bind/test/bind_const_test.cpp
1 #include <boost/config.hpp>
3 #if defined(BOOST_MSVC)
4 #pragma warning(disable: 4786) // identifier truncated in debug info
5 #pragma warning(disable: 4710) // function not inlined
6 #pragma warning(disable: 4711) // function selected for automatic inline expansion
7 #pragma warning(disable: 4514) // unreferenced inline removed
11 // bind_const_test.cpp - test const bind objects
13 // Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
14 // Copyright (c) 2001 David Abrahams
16 // Distributed under the Boost Software License, Version 1.0. (See
17 // accompanying file LICENSE_1_0.txt or copy at
18 // http://www.boost.org/LICENSE_1_0.txt)
21 #include <boost/bind.hpp>
22 #include <boost/ref.hpp>
24 #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
25 #pragma warning(push, 3)
30 #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
34 #include <boost/detail/lightweight_test.hpp>
48 long f_2(long a
, long b
)
53 long f_3(long a
, long b
, long c
)
55 return a
+ 10 * b
+ 100 * c
;
58 long f_4(long a
, long b
, long c
, long d
)
60 return a
+ 10 * b
+ 100 * c
+ 1000 * d
;
63 long f_5(long a
, long b
, long c
, long d
, long e
)
65 return a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
;
68 long f_6(long a
, long b
, long c
, long d
, long e
, long f
)
70 return a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
;
73 long f_7(long a
, long b
, long c
, long d
, long e
, long f
, long g
)
75 return a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
+ 1000000 * g
;
78 long f_8(long a
, long b
, long c
, long d
, long e
, long f
, long g
, long h
)
80 return a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
+ 1000000 * g
+ 10000000 * h
;
83 long f_9(long a
, long b
, long c
, long d
, long e
, long f
, long g
, long h
, long i
)
85 return a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
+ 1000000 * g
+ 10000000 * h
+ 100000000 * i
;
92 global_result
= 17041L;
100 void fv_2(long a
, long b
)
102 global_result
= a
+ 10 * b
;
105 void fv_3(long a
, long b
, long c
)
107 global_result
= a
+ 10 * b
+ 100 * c
;
110 void fv_4(long a
, long b
, long c
, long d
)
112 global_result
= a
+ 10 * b
+ 100 * c
+ 1000 * d
;
115 void fv_5(long a
, long b
, long c
, long d
, long e
)
117 global_result
= a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
;
120 void fv_6(long a
, long b
, long c
, long d
, long e
, long f
)
122 global_result
= a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
;
125 void fv_7(long a
, long b
, long c
, long d
, long e
, long f
, long g
)
127 global_result
= a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
+ 1000000 * g
;
130 void fv_8(long a
, long b
, long c
, long d
, long e
, long f
, long g
, long h
)
132 global_result
= a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
+ 1000000 * g
+ 10000000 * h
;
135 void fv_9(long a
, long b
, long c
, long d
, long e
, long f
, long g
, long h
, long i
)
137 global_result
= a
+ 10 * b
+ 100 * c
+ 1000 * d
+ 10000 * e
+ 100000 * f
+ 1000000 * g
+ 10000000 * h
+ 100000000 * i
;
140 template<class F
, class A
> long test(F
const & f
, A
const & a
)
145 template<class F
, class A
> long testv(F
const & f
, A
const & a
)
148 return global_result
;
153 using namespace boost
;
157 BOOST_TEST( test( bind(f_0
), i
) == 17041L );
158 BOOST_TEST( test( bind(f_1
, _1
), i
) == 1L );
159 BOOST_TEST( test( bind(f_2
, _1
, 2), i
) == 21L );
160 BOOST_TEST( test( bind(f_3
, _1
, 2, 3), i
) == 321L );
161 BOOST_TEST( test( bind(f_4
, _1
, 2, 3, 4), i
) == 4321L );
162 BOOST_TEST( test( bind(f_5
, _1
, 2, 3, 4, 5), i
) == 54321L );
163 BOOST_TEST( test( bind(f_6
, _1
, 2, 3, 4, 5, 6), i
) == 654321L );
164 BOOST_TEST( test( bind(f_7
, _1
, 2, 3, 4, 5, 6, 7), i
) == 7654321L );
165 BOOST_TEST( test( bind(f_8
, _1
, 2, 3, 4, 5, 6, 7, 8), i
) == 87654321L );
166 BOOST_TEST( test( bind(f_9
, _1
, 2, 3, 4, 5, 6, 7, 8, 9), i
) == 987654321L );
168 BOOST_TEST( testv( bind(fv_0
), i
) == 17041L );
169 BOOST_TEST( testv( bind(fv_1
, _1
), i
) == 1L );
170 BOOST_TEST( testv( bind(fv_2
, _1
, 2), i
) == 21L );
171 BOOST_TEST( testv( bind(fv_3
, _1
, 2, 3), i
) == 321L );
172 BOOST_TEST( testv( bind(fv_4
, _1
, 2, 3, 4), i
) == 4321L );
173 BOOST_TEST( testv( bind(fv_5
, _1
, 2, 3, 4, 5), i
) == 54321L );
174 BOOST_TEST( testv( bind(fv_6
, _1
, 2, 3, 4, 5, 6), i
) == 654321L );
175 BOOST_TEST( testv( bind(fv_7
, _1
, 2, 3, 4, 5, 6, 7), i
) == 7654321L );
176 BOOST_TEST( testv( bind(fv_8
, _1
, 2, 3, 4, 5, 6, 7, 8), i
) == 87654321L );
177 BOOST_TEST( testv( bind(fv_9
, _1
, 2, 3, 4, 5, 6, 7, 8, 9), i
) == 987654321L );
183 return boost::report_errors();