]>
Commit | Line | Data |
---|---|---|
b32b8144 FG |
1 | #include <tuple>\r |
2 | #include <utility>\r | |
3 | #include <type_traits>\r | |
4 | #include <boost/callable_traits/qualified_class_of.hpp>\r | |
5 | #include "test.hpp"\r | |
6 | \r | |
7 | struct foo;\r | |
8 | \r | |
9 | int main() {\r | |
10 | \r | |
11 | {\r | |
12 | using f = void(foo::*)();\r | |
13 | using test = TRAIT(qualified_class_of, f);\r | |
14 | using expect = foo &;\r | |
15 | CT_ASSERT(std::is_same<test, expect>::value);\r | |
16 | }\r | |
17 | \r | |
18 | {\r | |
19 | using f = void(foo::*)() const;\r | |
20 | using test = TRAIT(qualified_class_of, f);\r | |
21 | using expect = foo const &;\r | |
22 | CT_ASSERT(std::is_same<test, expect>::value);\r | |
23 | }\r | |
24 | \r | |
25 | {\r | |
26 | using f = void(foo::*)() volatile;\r | |
27 | using test = TRAIT(qualified_class_of, f);\r | |
28 | using expect = foo volatile &;\r | |
29 | CT_ASSERT(std::is_same<test, expect>::value);\r | |
30 | }\r | |
31 | \r | |
32 | {\r | |
33 | using f = void(BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC foo::*)(int, ...) const volatile;\r | |
34 | using test = TRAIT(qualified_class_of, f);\r | |
35 | using expect = foo const volatile &;\r | |
36 | CT_ASSERT(std::is_same<test, expect>::value);\r | |
37 | }\r | |
38 | \r | |
39 | {\r | |
40 | using f = int foo::*;\r | |
41 | using test = TRAIT(qualified_class_of, f);\r | |
42 | using expect = foo const &;\r | |
43 | CT_ASSERT(std::is_same<test, expect>::value);\r | |
44 | }\r | |
45 | \r | |
46 | {\r | |
47 | using f = const int foo::*;\r | |
48 | using test = TRAIT(qualified_class_of, f);\r | |
49 | using expect = foo const &;\r | |
50 | CT_ASSERT(std::is_same<test, expect>::value);\r | |
51 | }\r | |
52 | }\r |