53 double funny (
char,
char,
string);
55 short fuzzy (
float,
float);
66 friend void fun (
Fishy&);
114 detect_freeFunctionADL_ExtensionPoint();
115 detect_memberFunctionVariations();
141 CHECK ( not HasExtensionPoint_funZ<long>::value );
143 CHECK ( HasExtensionPoint_fun<long> ::value );
144 CHECK ( HasExtensionPoint_fun<long&> ::value );
145 CHECK ( HasExtensionPoint_fun<long&&> ::value );
146 CHECK ( HasExtensionPoint_fun<char> ::value );
147 CHECK ( HasExtensionPoint_fun<char&> ::value );
148 CHECK ( HasExtensionPoint_fun<char&&> ::value );
149 CHECK ( not HasExtensionPoint_fun<string> ::value );
150 CHECK ( not HasExtensionPoint_fun<void> ::value );
152 CHECK ( not HasExtensionPoint_fun<Cheesy> ::value );
153 CHECK ( not HasExtensionPoint_fun<Fishy> ::value );
154 CHECK ( HasExtensionPoint_fun<Fishy&> ::value );
155 CHECK ( not HasExtensionPoint_fun<Fishy&&> ::value );
156 CHECK ( not HasExtensionPoint_fun<Fishy const&>::value );
158 CHECK ( not HasExtensionPoint_fun<Fishy const&>::value );
174 CHECK ( HasFunSig_funny<Cheesy> ::value );
175 CHECK ( HasFunSig_funny<Cheesy const> ::value );
176 CHECK ( not HasFunSig_funny<Cheesy const&> ::value );
178 CHECK ( HasFunSig_fuzzy<Cheesy> ::value );
180 CHECK ( HasFunName_funny<Cheesy> ::value );
181 CHECK ( HasFunName_funky<Cheesy> ::value );
182 CHECK ( not HasFunName_fuzzy<Cheesy> ::value );
183 CHECK ( not HasFunName_fully<Cheesy> ::value );
185 CHECK ( HasMember_funny<Cheesy> ::value );
186 CHECK ( HasMember_funky<Cheesy> ::value );
187 CHECK ( not HasMember_fuzzy<Cheesy> ::value );
188 CHECK ( HasMember_fully<Cheesy> ::value );
190 CHECK ( not HasArglessFun_funny<Cheesy> ::value );
191 CHECK ( HasArglessFun_funky<Cheesy> ::value );
192 CHECK ( HasArglessFun_fuzzy<Cheesy> ::value );
194 CHECK ( not HasFunSig_fuzzy<Fishy> ::value );
195 CHECK ( not HasFunSig_funny<Fishy> ::value );
196 CHECK ( not HasFunName_funny<Fishy> ::value );
197 CHECK ( not HasFunName_funky<Fishy> ::value );
198 CHECK ( not HasFunName_fuzzy<Fishy> ::value );
199 CHECK ( not HasFunName_fully<Fishy> ::value );
200 CHECK ( not HasMember_funny<Fishy> ::value );
201 CHECK ( not HasMember_funky<Fishy> ::value );
202 CHECK ( not HasMember_fuzzy<Fishy> ::value );
203 CHECK ( not HasMember_fully<Fishy> ::value );
204 CHECK ( not HasArglessFun_funny<Fishy> ::value );
205 CHECK ( not HasArglessFun_funky<Fishy> ::value );
206 CHECK ( not HasArglessFun_fuzzy<Fishy> ::value );
207 CHECK ( not HasFunSig_fuzzy<short> ::value );
#define META_DETECT_MEMBER(_NAME_)
Detector for a nested member (field or function).
#define META_DETECT_FUNCTION(_RET_TYPE_, _FUN_NAME_, _ARGS_)
Detector for a specific member function.
Implementation namespace for support and library code.
#define META_DETECT_FUNCTION_ARGLESS(_FUN_)
Detector for an argument-less member function with the given name.
Simplistic test class runner.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
#define META_DETECT_FUNCTION_NAME(_FUN_NAME_)
Detector for a member function with the given name.
#define META_DETECT_EXTENSION_POINT(_FUN_)
Detector for support of a free-function extension point.
Metaprogramming helpers to check for specific properties of a type in question.