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:
humesikkins 2003-02-27 15:49:36 +00:00
parent a82b3d6a6a
commit 3fe3afd55e

View file

@ -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_