]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // Copyright (C) 2006 Arkadiy Vertleyb |
2 | // Use, modification and distribution is subject to the Boost Software | |
3 | // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) | |
4 | ||
5 | #include "test.hpp" | |
6 | ||
7 | BOOST_STATIC_ASSERT(boost::type_of::test<double(*)()>::value); | |
8 | BOOST_STATIC_ASSERT(boost::type_of::test<double(*)(int, double, short, char*, bool, char, float, long, unsigned short)>::value); | |
9 | BOOST_STATIC_ASSERT(boost::type_of::test<void(*)()>::value); | |
10 | BOOST_STATIC_ASSERT(boost::type_of::test<void(*)(int, double, short, char*, bool, char, float, long, unsigned short)>::value); | |
b32b8144 FG |
11 | BOOST_STATIC_ASSERT(boost::type_of::test<void(*)(...)>::value); |
12 | BOOST_STATIC_ASSERT(boost::type_of::test<void(*)(int, double, short, char*, bool, char, float, long, unsigned short, ...)>::value); | |
7c673cae FG |
13 | |
14 | // check that const gets stripped from function pointer | |
15 | ||
b32b8144 FG |
16 | int foo1(double); |
17 | int foo2(...); | |
18 | typedef int(*PTR1)(double); | |
19 | typedef int(*PTR2)(...); | |
20 | typedef const PTR1 CPTR1; | |
21 | typedef const PTR2 CPTR2; | |
22 | CPTR1 cptr1 = foo1; | |
23 | CPTR2 cptr2 = foo2; | |
7c673cae | 24 | |
b32b8144 FG |
25 | BOOST_STATIC_ASSERT((boost::is_same<BOOST_TYPEOF(cptr1), PTR1>::value)); |
26 | BOOST_STATIC_ASSERT((boost::is_same<BOOST_TYPEOF(cptr2), PTR2>::value)); |