4 #include <boost/callable_traits/has_void_return.hpp>
10 void assert_void_return() {
11 CT_ASSERT(has_void_return
<T
>::value
);
15 void assert_not_void_return() {
16 CT_ASSERT(!has_void_return
<T
>::value
);
21 assert_void_return
<void()>();
22 assert_void_return
<void(...)>();
24 #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
25 assert_void_return
<void(int) const>();
26 assert_void_return
<void(int) volatile>();
27 assert_void_return
<void(int) const volatile>();
28 #endif // #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
30 assert_void_return
<void(foo::*)()>();
31 assert_void_return
<void(BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
foo::*)(int, ...)>();
32 assert_void_return
<void(foo::*)(int) const>();
33 assert_void_return
<void(foo::*)() volatile>();
34 assert_void_return
<void(foo::*)(int) const volatile>();
36 assert_void_return
<void(*)()>();
37 assert_void_return
<void(BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
*)(int, ...)>();
39 assert_void_return
<void(&)(int)>();
40 assert_void_return
<void(BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
&)(...)>();
43 assert_void_return
<decltype(lambda
)>();
45 assert_not_void_return
<void>();
46 assert_not_void_return
<int>();
47 assert_not_void_return
<void*>();
48 assert_not_void_return
<void* foo::*>();
49 assert_not_void_return
<void(** const)()>();
50 assert_not_void_return
<int()>();
51 assert_not_void_return
<int(*)()>();
52 assert_not_void_return
<int(&)()>();
53 assert_not_void_return
<int(foo::*)()>();
54 assert_not_void_return
<int(foo::*)() const>();
55 assert_not_void_return
<int(foo::*)() volatile>();
56 assert_not_void_return
<int(foo::*)() const volatile>();
57 assert_not_void_return
<void(foo::**)()>();