?????????????????????鴫??е???????????? modern c++ design???????????????????????????и???????漼???????????????????????????????????? c++ ????????? insight c++ object model ????????????? Herb ???????? Andrei ????巽????????μ????????????????????Andrei ?????????
????c++ ?????????????????????????????????????????????????????????????????????????嵱?????????????????????????????????д STL?? boost?? loki ?????????????????????????????д???????????????????????????????????????????? c++ ???????????????????????????????????????????????????£????????÷????????????????д???????????????????????и???????????????????????????????Щ???????????????????????????????β?????????????????????????????????????????????????????????????????????? boost.proto ??????????????????????????????????£???????e???????
?????????????????????????????????????????????????????Щ??????????????????????????ж????????Щ????????п??????????????????????????????????????飬????????????typedef ?? enum ??????????????????????????????????????????????????壬?????? enum?? ???????????????????????(:?)????????ж??????????(if/else)???????????????????????
?????????????????Щ??????????? Loki ?й?????? typelist ????????????嶼????Щ????
????typelist ????????????????????????????????????????????з?????????????????????£?
????template <class T?? class U>
????struct Typelist
????{
????typedef T Head;
????typedef U Tail;
????};
????Head ?? typelist ?е???????????? type?? Tail ?? typelist ?иy?????????????????????????????е? next ???????ж????????? typelist ???????????????????У?next ????????????????????? typelist ????????????????????
????struct NullType
????{
????};
?????????????????壬?????????????????????????? typelist ???
????typedef Typelist<char?? Typelist<int?? Typelist<short?? NullType> >
?????????????д???????????????????????????????????????????????У????? Loki ???????????????????????????????????????? c++ ??????????? variadic template parameter????Щ?????????????????????????????????£????????????????
???????????????????????????????????????λ?????????????????????????????Щ??????????ò?????? ??????Щ??????????е?????????????????????????????? typelist??????ж?? typelist ??????????????????????