1// Copyright 2019 Lichao Xia
2//
3// Distributed under the Boost Software License, Version 1.0.
4// (See accompanying file LICENSE_1_0.txt
5// or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7// For more information, see http://www.boost.org
8
9#include <boost/config.hpp>
10
11#if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L)
12
13#include <boost/dll/config.hpp>
14#include <string>
15
16namespace space {
17template<typename... T>
18class test_template_class
19{};
20
21template<typename T1,
22 typename T2 = char,
23 typename T3 = test_template_class<int>>
24class test_template_class_have_default_args
25{};
26
27class BOOST_SYMBOL_EXPORT cpp_plugin_type_pasrser
28{
29private:
30 /* data */
31public:
32 cpp_plugin_type_pasrser(/* args */);
33 cpp_plugin_type_pasrser(int*);
34 cpp_plugin_type_pasrser(const int*);
35 cpp_plugin_type_pasrser(const volatile int*);
36 cpp_plugin_type_pasrser(const std::string&);
37 cpp_plugin_type_pasrser(const volatile std::string*);
38 ~cpp_plugin_type_pasrser();
39 void type_test(int*);
40 void type_test(const int*);
41 void type_test(const volatile int*);
42 void type_test(std::string*);
43 void type_test(const std::string*);
44 void type_test(const volatile std::string*);
45 void type_test(const std::string&);
46 void type_test(void (*)(const char* volatile));
47 void type_test(volatile const char* const* volatile*&&);
48 void type_test(const char*) const;
49 void type_test(const char*) volatile;
50 void type_test(const char*) const volatile;
51 void type_test(const test_template_class<>&);
52 void type_test(const test_template_class<int>&);
53 void type_test(const test_template_class<std::string>&);
54 void type_test(const test_template_class<void(int)>&);
55 void type_test(const test_template_class<char, int, std::string>&);
56 void type_test(const test_template_class_have_default_args<int>&);
57 void type_test(const test_template_class_have_default_args<int, double>&);
58 void type_test(
59 const test_template_class_have_default_args<int, double, std::string>&);
60};
61
62cpp_plugin_type_pasrser::cpp_plugin_type_pasrser(/* args */) {}
63cpp_plugin_type_pasrser::cpp_plugin_type_pasrser(int*) {}
64cpp_plugin_type_pasrser::cpp_plugin_type_pasrser(const int*) {}
65cpp_plugin_type_pasrser::cpp_plugin_type_pasrser(const volatile int*) {}
66cpp_plugin_type_pasrser::cpp_plugin_type_pasrser(const std::string&) {}
67cpp_plugin_type_pasrser::cpp_plugin_type_pasrser(const volatile std::string*) {}
68cpp_plugin_type_pasrser::~cpp_plugin_type_pasrser() {}
69void
70cpp_plugin_type_pasrser::type_test(int*)
71{}
72void
73cpp_plugin_type_pasrser::type_test(const int*)
74{}
75void
76cpp_plugin_type_pasrser::type_test(const volatile int*)
77{}
78void
79cpp_plugin_type_pasrser::type_test(std::string*)
80{}
81void
82cpp_plugin_type_pasrser::type_test(const std::string*)
83{}
84void
85cpp_plugin_type_pasrser::type_test(const volatile std::string*)
86{}
87
88void
89cpp_plugin_type_pasrser::type_test(const std::string&)
90{}
91
92void
93cpp_plugin_type_pasrser::type_test(void (*)(const char* volatile))
94{}
95
96void
97cpp_plugin_type_pasrser::type_test(const volatile char* const* volatile*&&)
98{}
99
100void
101cpp_plugin_type_pasrser::type_test(const char*) const
102{}
103
104void
105cpp_plugin_type_pasrser::type_test(const char*) volatile
106{}
107
108void
109cpp_plugin_type_pasrser::type_test(const char*) const volatile
110{}
111void
112cpp_plugin_type_pasrser::type_test(const test_template_class<>&)
113{}
114void
115cpp_plugin_type_pasrser::type_test(const test_template_class<int>&)
116{}
117void
118cpp_plugin_type_pasrser::type_test(const test_template_class<std::string>&)
119{}
120void
121cpp_plugin_type_pasrser::type_test(
122 const test_template_class<char, int, std::string>&)
123{}
124void
125cpp_plugin_type_pasrser::type_test(const test_template_class<void(int)>&)
126{}
127void
128cpp_plugin_type_pasrser::type_test(
129 const test_template_class_have_default_args<int>&)
130{}
131void
132cpp_plugin_type_pasrser::type_test(
133 const test_template_class_have_default_args<int, double>&)
134{}
135void
136cpp_plugin_type_pasrser::type_test(
137 const test_template_class_have_default_args<int, double, std::string>&)
138{}
139} // namespace space
140
141#endif
142

source code of boost/libs/dll/test/cpp_ctti_type_name_parser_lib.cpp