fixed bug in DerivedToFront. Renamed MakeTypeList -> MakeTypelist
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@97 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
a82b3d6a6a
commit
3fe3afd55e
1 changed files with 93 additions and 91 deletions
|
@ -13,7 +13,9 @@
|
||||||
// without express or implied warranty.
|
// without express or implied warranty.
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Last update: Sept 29, 2002
|
// Last update: Feb 22, 2003
|
||||||
|
//
|
||||||
|
// renamed MakeTypeList to MakeTypelist.
|
||||||
//
|
//
|
||||||
// Rani Sharoni's VC 7 port is heavily based on explicit template specialization
|
// Rani Sharoni's VC 7 port is heavily based on explicit template specialization
|
||||||
// inside class templates.
|
// inside class templates.
|
||||||
|
@ -470,10 +472,10 @@ namespace Loki
|
||||||
typename T13 = NullType, typename T14 = NullType, typename T15 = NullType,
|
typename T13 = NullType, typename T14 = NullType, typename T15 = NullType,
|
||||||
typename T16 = NullType, typename T17 = NullType, typename T18 = NullType
|
typename T16 = NullType, typename T17 = NullType, typename T18 = NullType
|
||||||
>
|
>
|
||||||
struct MakeTypeList
|
struct MakeTypelist
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef typename MakeTypeList
|
typedef typename MakeTypelist
|
||||||
<
|
<
|
||||||
T2 , T3 , T4 ,
|
T2 , T3 , T4 ,
|
||||||
T5 , T6 , T7 ,
|
T5 , T6 , T7 ,
|
||||||
|
@ -489,7 +491,7 @@ namespace Loki
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct MakeTypeList
|
struct MakeTypelist
|
||||||
<
|
<
|
||||||
NullType, NullType, NullType,
|
NullType, NullType, NullType,
|
||||||
NullType, NullType, NullType,
|
NullType, NullType, NullType,
|
||||||
|
@ -1068,7 +1070,6 @@ namespace Private
|
||||||
typedef typename
|
typedef typename
|
||||||
Private::MostDerivedImpl<TList>::template In<T>::Result Result;
|
Private::MostDerivedImpl<TList>::template In<T>::Result Result;
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// class template DerivedToFront
|
// class template DerivedToFront
|
||||||
// Arranges the types in a typelist so that the most derived types appear first
|
// Arranges the types in a typelist so that the most derived types appear first
|
||||||
|
@ -1076,7 +1077,6 @@ namespace Private
|
||||||
// DerivedToFront<TList>::Result
|
// DerivedToFront<TList>::Result
|
||||||
// returns the reordered TList
|
// returns the reordered TList
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// DerivedToFront taken from Rani Sharoni's Loki VC7-Port.
|
|
||||||
template <class TList>
|
template <class TList>
|
||||||
struct DerivedToFront
|
struct DerivedToFront
|
||||||
{
|
{
|
||||||
|
@ -1087,7 +1087,7 @@ namespace Private
|
||||||
typedef typename TList::Tail Tail;
|
typedef typename TList::Tail Tail;
|
||||||
|
|
||||||
typedef typename MostDerived<Tail, Head>::Result TheMostDerived;
|
typedef typename MostDerived<Tail, Head>::Result TheMostDerived;
|
||||||
typedef typename ReplaceAll<Tail, TheMostDerived, Head>::Result Temp;
|
typedef typename Replace<Tail, TheMostDerived, Head>::Result Temp;
|
||||||
typedef typename DerivedToFront<Temp>::Result L;
|
typedef typename DerivedToFront<Temp>::Result L;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -1142,5 +1142,7 @@ namespace Private
|
||||||
// June 20, 2001: ported by Nick Thurn to gcc 2.95.3. Kudos, Nick!!!
|
// June 20, 2001: ported by Nick Thurn to gcc 2.95.3. Kudos, Nick!!!
|
||||||
// May 10, 2002: ported by Rani Sharoni to VC7 (RTM - 9466)
|
// May 10, 2002: ported by Rani Sharoni to VC7 (RTM - 9466)
|
||||||
// Sept 29, 2002: ported by Benjamin Kaufmann to MSVC 6.0
|
// Sept 29, 2002: ported by Benjamin Kaufmann to MSVC 6.0
|
||||||
|
// Feb 24, 2003: renamed MakeTypeList to MakeTypelist. Fixed a bug in
|
||||||
|
// DerivedToFront.
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
#endif // TYPELIST_INC_
|
#endif // TYPELIST_INC_
|
Loading…
Add table
Reference in a new issue