fix bug: [ 669669 ] TypeTraits::ParameterType for non-primitive types

git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@210 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
syntheticpp 2005-08-26 15:17:42 +00:00
parent 205770826b
commit f6fffe4dea

View file

@ -88,7 +88,7 @@ namespace Loki
typedef NullType Result; typedef NullType Result;
}; };
template <class U> struct AddConstReference template <class U> struct AddConstReference
{ {
typedef const U & Result; typedef const U & Result;
}; };
@ -102,7 +102,7 @@ namespace Loki
{ {
typedef NullType Result; typedef NullType Result;
}; };
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -138,6 +138,8 @@ namespace Loki
// t) NonVolatileType : Type with removed 'volatile' qualifier from T, if any // t) NonVolatileType : Type with removed 'volatile' qualifier from T, if any
// u) UnqualifiedType : Type with removed 'const' and 'volatile' qualifiers from // u) UnqualifiedType : Type with removed 'const' and 'volatile' qualifiers from
// T, if any // T, if any
// v)ConstParameterType: returns the optimal type to be used as a parameter
// for functions that take 'const T's
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -252,7 +254,7 @@ namespace Loki
typename Private::AddReference<T>::Result>::Result typename Private::AddReference<T>::Result>::Result
ParameterType; ParameterType;
typedef typename Select<isStdArith || isPointer || isMemberPointer, T, typedef typename Select<isStdArith || isPointer || isMemberPointer, T,
typename Private::AddConstReference<T>::Result>::Result typename Private::AddConstReference<T>::Result>::Result
ConstParameterType; ConstParameterType;