62 double funny (
char,
char,
string);
64 short fuzzy (
float,
float);
75 friend void fun (
Fishy&);
123 detect_freeFunctionADL_ExtensionPoint();
124 detect_memberFunctionVariations();
150 CHECK ( not HasExtensionPoint_funZ<long>::value );
152 CHECK ( HasExtensionPoint_fun<long> ::value );
153 CHECK ( HasExtensionPoint_fun<long&> ::value );
154 CHECK ( HasExtensionPoint_fun<long&&> ::value );
155 CHECK ( HasExtensionPoint_fun<char> ::value );
156 CHECK ( HasExtensionPoint_fun<char&> ::value );
157 CHECK ( HasExtensionPoint_fun<char&&> ::value );
158 CHECK ( not HasExtensionPoint_fun<string> ::value );
159 CHECK ( not HasExtensionPoint_fun<void> ::value );
161 CHECK ( not HasExtensionPoint_fun<Cheesy> ::value );
162 CHECK ( not HasExtensionPoint_fun<Fishy> ::value );
163 CHECK ( HasExtensionPoint_fun<Fishy&> ::value );
164 CHECK ( not HasExtensionPoint_fun<Fishy&&> ::value );
165 CHECK ( not HasExtensionPoint_fun<Fishy const&>::value );
167 CHECK ( not HasExtensionPoint_fun<Fishy const&>::value );
183 CHECK ( HasFunSig_funny<Cheesy> ::value );
184 CHECK ( HasFunSig_funny<Cheesy const> ::value );
185 CHECK ( not HasFunSig_funny<Cheesy const&> ::value );
187 CHECK ( HasFunSig_fuzzy<Cheesy> ::value );
189 CHECK ( HasFunName_funny<Cheesy> ::value );
190 CHECK ( HasFunName_funky<Cheesy> ::value );
191 CHECK ( not HasFunName_fuzzy<Cheesy> ::value );
192 CHECK ( not HasFunName_fully<Cheesy> ::value );
194 CHECK ( HasMember_funny<Cheesy> ::value );
195 CHECK ( HasMember_funky<Cheesy> ::value );
196 CHECK ( not HasMember_fuzzy<Cheesy> ::value );
197 CHECK ( HasMember_fully<Cheesy> ::value );
199 CHECK ( not HasArglessFun_funny<Cheesy> ::value );
200 CHECK ( HasArglessFun_funky<Cheesy> ::value );
201 CHECK ( HasArglessFun_fuzzy<Cheesy> ::value );
203 CHECK ( not HasFunSig_fuzzy<Fishy> ::value );
204 CHECK ( not HasFunSig_funny<Fishy> ::value );
205 CHECK ( not HasFunName_funny<Fishy> ::value );
206 CHECK ( not HasFunName_funky<Fishy> ::value );
207 CHECK ( not HasFunName_fuzzy<Fishy> ::value );
208 CHECK ( not HasFunName_fully<Fishy> ::value );
209 CHECK ( not HasMember_funny<Fishy> ::value );
210 CHECK ( not HasMember_funky<Fishy> ::value );
211 CHECK ( not HasMember_fuzzy<Fishy> ::value );
212 CHECK ( not HasMember_fully<Fishy> ::value );
213 CHECK ( not HasArglessFun_funny<Fishy> ::value );
214 CHECK ( not HasArglessFun_funky<Fishy> ::value );
215 CHECK ( not HasArglessFun_fuzzy<Fishy> ::value );
216 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.
Simple 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.