From d953614fe421da145c8a8b1b156443eae0862e40 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Fri, 28 Sep 2007 12:46:17 +0200 Subject: [PATCH] add 6 arg support to pointer to member traits --- src/core/type-traits.h | 114 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/src/core/type-traits.h b/src/core/type-traits.h index 2fcb83550..58dbb9e3f 100644 --- a/src/core/type-traits.h +++ b/src/core/type-traits.h @@ -114,7 +114,119 @@ private: typedef W1 Arg1Type; typedef W2 Arg2Type; }; - + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 3}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + }; + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 3}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + }; + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 4}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + typedef W4 Arg4Type; + }; + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 4}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + typedef W4 Arg4Type; + }; + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 5}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + typedef W4 Arg4Type; + typedef W5 Arg5Type; + }; + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 5}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + typedef W4 Arg4Type; + typedef W5 Arg5Type; + }; + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 6}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + typedef W4 Arg4Type; + typedef W5 Arg5Type; + typedef W6 Arg6Type; + }; + template + struct PtrToMemberTraits + { + enum {IsPointerToMember = 1}; + enum {nArgs = 6}; + typedef U ReturnType; + typedef W1 Arg1Type; + typedef W2 Arg2Type; + typedef W3 Arg3Type; + typedef W4 Arg4Type; + typedef W5 Arg5Type; + typedef W6 Arg6Type; + }; + public: typedef typename UnConst::Result NonConstType; typedef typename ReferenceTraits::ReferencedType ReferencedType;