add isFunction, isFunctionPointer and isMemberFunction to TypeTrais.h, a HUGE patch from Kalle Runtanen
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@239 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
dc60af98c4
commit
4bf2e38475
2 changed files with 1936 additions and 30 deletions
File diff suppressed because it is too large
Load diff
|
@ -106,7 +106,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <typeinfo>
|
#include <typeinfo>
|
||||||
|
|
||||||
//#define ENABLE_ADDITIONAL_TYPETRAITS
|
#define ENABLE_ADDITIONAL_TYPETRAITS
|
||||||
|
|
||||||
|
|
||||||
#include <typetraits.h>
|
#include <typetraits.h>
|
||||||
|
@ -383,13 +383,12 @@ inline void TypeTraitsTest2::testPointer()
|
||||||
PASS(void (* const volatile)(int, float));
|
PASS(void (* const volatile)(int, float));
|
||||||
PASS(void (* const volatile)(int, float, ...));
|
PASS(void (* const volatile)(int, float, ...));
|
||||||
|
|
||||||
/*
|
|
||||||
// Pointer to member functions
|
|
||||||
PASS(void (A::* const volatile)() const volatile);
|
PASS(void (A::* const volatile)() const volatile);
|
||||||
PASS(void (A::* const volatile)(int, float) const volatile);
|
PASS(void (A::* const volatile)(int, float) const volatile);
|
||||||
PASS(void (A::* const volatile)(int, float, ...) const volatile);
|
PASS(void (A::* const volatile)(int, float, ...) const volatile);
|
||||||
PASS(int A::* const volatile);
|
PASS(int A::* const volatile);
|
||||||
*/
|
|
||||||
|
|
||||||
PASS(const volatile int** const volatile ** const * const volatile);
|
PASS(const volatile int** const volatile ** const * const volatile);
|
||||||
PASS(int* const volatile&);
|
PASS(int* const volatile&);
|
||||||
|
@ -407,7 +406,7 @@ inline void TypeTraitsTest2::testMemberPointer()
|
||||||
PASS(int A::* const volatile);
|
PASS(int A::* const volatile);
|
||||||
PASS(const volatile int A::* const volatile);
|
PASS(const volatile int A::* const volatile);
|
||||||
|
|
||||||
/*
|
|
||||||
// Pointer to member functions
|
// Pointer to member functions
|
||||||
PASS(int (A::* )() const);
|
PASS(int (A::* )() const);
|
||||||
PASS(int (A::* const volatile)() const volatile);
|
PASS(int (A::* const volatile)() const volatile);
|
||||||
|
@ -415,7 +414,7 @@ inline void TypeTraitsTest2::testMemberPointer()
|
||||||
PASS(int (A::* const volatile&)(int, float) const volatile);
|
PASS(int (A::* const volatile&)(int, float) const volatile);
|
||||||
PASS(int (A::* const volatile)(int, float, ...) const volatile);
|
PASS(int (A::* const volatile)(int, float, ...) const volatile);
|
||||||
PASS(int (A::* const volatile&)(int, float, ...) const volatile);
|
PASS(int (A::* const volatile&)(int, float, ...) const volatile);
|
||||||
*/
|
|
||||||
|
|
||||||
FAIL(int);
|
FAIL(int);
|
||||||
FAIL(void);
|
FAIL(void);
|
||||||
|
@ -429,6 +428,7 @@ inline void TypeTraitsTest2::testFunctionPointer()
|
||||||
#undef CONDITION
|
#undef CONDITION
|
||||||
#define CONDITION isFunctionPointer
|
#define CONDITION isFunctionPointer
|
||||||
|
|
||||||
|
PASS(void (*)());
|
||||||
FAIL(void (A::* const volatile)());
|
FAIL(void (A::* const volatile)());
|
||||||
FAIL(void (A::* const volatile)() const);
|
FAIL(void (A::* const volatile)() const);
|
||||||
FAIL(void (A::* const volatile)() volatile);
|
FAIL(void (A::* const volatile)() volatile);
|
||||||
|
@ -446,6 +446,7 @@ inline void TypeTraitsTest2::testFunctionPointer()
|
||||||
FAIL(void);
|
FAIL(void);
|
||||||
FAIL(void*);
|
FAIL(void*);
|
||||||
FAIL(int A::*);
|
FAIL(int A::*);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue