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:
parent
205770826b
commit
f6fffe4dea
1 changed files with 5 additions and 3 deletions
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue