]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/bind/test/bind_stdcall_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_stdcall_test.cpp - test for bind.hpp + __stdcall (free functions)
13 // Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
15 // Distributed under the Boost Software License, Version 1.0. (See
16 // accompanying file LICENSE_1_0.txt or copy at
17 // http://www.boost.org/LICENSE_1_0.txt)
20 #define BOOST_BIND_ENABLE_STDCALL
22 #include <boost/bind.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>
43 long __stdcall
f_1(long a
)
48 long __stdcall
f_2(long a
, long b
)
53 long __stdcall
f_3(long a
, long b
, long c
)
55 return a
+ 10 * b
+ 100 * c
;
58 long __stdcall
f_4(long a
, long b
, long c
, long d
)
60 return a
+ 10 * b
+ 100 * c
+ 1000 * d
;
63 long __stdcall
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 __stdcall
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 __stdcall
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 __stdcall
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 __stdcall
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
;
90 using namespace boost
;
94 BOOST_TEST( bind(f_0
)(i
) == 17041L );
95 BOOST_TEST( bind(f_1
, _1
)(i
) == 1L );
96 BOOST_TEST( bind(f_2
, _1
, 2)(i
) == 21L );
97 BOOST_TEST( bind(f_3
, _1
, 2, 3)(i
) == 321L );
98 BOOST_TEST( bind(f_4
, _1
, 2, 3, 4)(i
) == 4321L );
99 BOOST_TEST( bind(f_5
, _1
, 2, 3, 4, 5)(i
) == 54321L );
100 BOOST_TEST( bind(f_6
, _1
, 2, 3, 4, 5, 6)(i
) == 654321L );
101 BOOST_TEST( bind(f_7
, _1
, 2, 3, 4, 5, 6, 7)(i
) == 7654321L );
102 BOOST_TEST( bind(f_8
, _1
, 2, 3, 4, 5, 6, 7, 8)(i
) == 87654321L );
103 BOOST_TEST( bind(f_9
, _1
, 2, 3, 4, 5, 6, 7, 8, 9)(i
) == 987654321L );
109 return boost::report_errors();