Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/python/test/result.cpp @ 45

Last change on this file since 45 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 2.0 KB
Line 
1// Copyright David Abrahams 2002.
2// Distributed under the Boost Software License, Version 1.0. (See
3// accompanying file LICENSE_1_0.txt or copy at
4// http://www.boost.org/LICENSE_1_0.txt)
5#include <boost/python/detail/result.hpp>
6#include <boost/type.hpp>
7#include <functional>
8
9using boost::python::detail::result;
10using boost::type;
11
12void expect_int(type<int>*) {}
13void expect_string(type<char*>*) {}
14
15struct X {};
16
17int main()
18{
19    // Test the usage which works for functions, member functions, and data members
20    expect_int(
21        result((int(*)())0)
22        );
23
24    expect_int(
25        result((int(*)(char))0)
26        );
27
28    expect_int(
29        result((int(X::*)())0)
30        );
31
32    expect_int(
33        result((int(X::*)(char))0)
34        );
35
36    expect_int(
37        result((int(X::*))0)
38        );
39
40    expect_string(
41        result((char*(*)())0)
42        );
43   
44    expect_string(
45        result((char*(*)(char))0)
46        );
47   
48    expect_string(
49        result((char*(X::*)())0)
50        );
51   
52    expect_string(
53        result((char*(X::*)(char))0)
54        );
55   
56    expect_string(
57        result((char*(X::*))0)
58        );
59   
60    // Show that we can use the general version that works for
61    // AdaptableFunctions
62    expect_int(
63        result((int(*)())0,0)
64        );
65
66    expect_int(
67        result((int(*)(char))0,0)
68        );
69
70    expect_int(
71        result((int(X::*)())0,0)
72        );
73
74    expect_int(
75        result((int(X::*)(char))0,0)
76        );
77
78    expect_int(
79        result((int(X::*))0,0)
80        );
81   
82    expect_int(
83        result(std::plus<int>(),0)
84        );
85
86    expect_string(
87        result((char*(*)())0,0)
88        );
89   
90    expect_string(
91        result((char*(*)(char))0,0)
92        );
93   
94    expect_string(
95        result((char*(X::*)())0,0)
96        );
97   
98    expect_string(
99        result((char*(X::*)(char))0,0)
100        );
101   
102    expect_string(
103        result((char*(X::*))0,0)
104        );
105   
106    expect_string(
107        result(std::plus<char*>(),0)
108        );
109
110    return 0;
111}
Note: See TracBrowser for help on using the repository browser.