1 /*<-
2 Copyright (c) 2016 arett Adair
3
4 Distributed under the Boost Software License, Version 1.0.
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
6 ->*/
7
8
9 #include <boost/callable_traits/apply_member_pointer.hpp>
10 #include "test.hpp"
11
12 struct foo;
13
14 template<typename Input, typename Output>
test_case()15 void test_case() {
16 assert_same<TRAIT(apply_member_pointer, Input, foo), Output>();
17 }
18
main()19 int main() {
20 test_case<int, int foo::*>();
21 test_case<int &, int foo::*>();
22 test_case<int const, int const foo::*>();
23 test_case<int const &, int const foo::*>();
24 test_case<int volatile, int volatile foo::*>();
25 test_case<int volatile &, int volatile foo::*>();
26
27 //member data - function pointer
28 test_case<int(* const)(), int(* const foo::*)()>();
29 test_case<int(* const &)(), int(* const foo::*)()>();
30 }
31
32