读loki有感,TYPEList原理
问题1,简化版的TYPEList,只支持int型
template<int n>
class TYPEList
{
public:
int Head;
TYPEList<n⑴> Tail;
};
template<>
class TYPEList<0>
{
public:
int Tail;
int Head;
};
测试代码
TYPEList<0> l0;
l0.Head = 1;
l0.Tail = 2;
TYPEList<2> l2;
l2.Head = 3;
l2.Tail.Head = 4;
l2.Tail.Tail.Head = 5;
l2.Tail.Tail.Tail = 6;
问题2:可以同过GetAt(int)获得值
template<int n>
class TYPEList
{
public:
int Head;
TYPEList<n⑴> Tail;
int GetAt(int index )
{
if( n+1 == index )
return Head;
return Tail.GetAt(index);
}
};
template<>
class TYPEList<0>
{
public:
int GetAt(int index)
{
if( 1 == index )
return Tail;
return Head;
}
int Tail;
int Head;
};
测试代码
TYPEList<0> l0;
l0.Head = 1;
l0.Tail = 2;
TYPEList<2> l2;
l2.Head = 3;
l2.Tail.Head = 4;
l2.Tail.Tail.Head = 5;
l2.Tail.Tail.Tail = 6;
int i1 = l2.GetAt(0);
int i2 = l2.GetAt(1);
int i3 = l2.GetAt(2);
int i4 = l2.GetAt(3);
问题3,类型不再限于int,但最多集成3个变量。
class NullType
{
};
template <class T, class U>
struct Typelist
{
T Head;
U Tail;
};
template <typename T1 = NullType, typename T2 = NullType, typename T3 = NullType >
struct MakeTypelist
{
private:
typedef typename MakeTypelist< T2 ,T3>::Result TailResult;
public:
typedef Typelist<T1, TailResult> Result; };
template<>
struct MakeTypelist<>
{
typedef NullType Result;
};
测试代码:
MakeTypelist<ULONG,CString,int>::Result User,User2;
User.Head = 1;
User.Tail.Head = "何志丹";
User.Tail.Tail.Head = 35;
User2 = User;
template <class AtomicType, template <class> class GenFunc>
struct IterateTypes
{ template<class II>
void operator()(II ii)
{
GenFunc<AtomicType> genfunc;
*ii = genfunc();
++ii; //Is this even needed?
}
};
波比源码 » 读loki有感,TYPEList原理
purchase levofloxacin online cheap levofloxacin 500mg canada
buy provera online cheap microzide 25mg drug buy periactin 4mg without prescription
piracetam canada order viagra 100mg pills order sildenafil 50mg pills
generic cialis india sildenafil 200mg price order viagra 100mg for sale
buy generic norvasc canadian viagra cialis price
buy sildenafil 50mg without prescription buy viagra 50mg generic buy lisinopril 10mg pill
cheap linezolid 600 mg zyvox 600 mg pill online poker sites
no deposit casino online roulette game free casino games no registration no download
order simvastatin online cheap buy simvastatin 10mg for sale order propecia 1mg online
cephalexin without prescription order cephalexin 500mg online erythromycin 250mg cost
fildena sale purchase rhinocort online cheap budesonide medication
buy prednisone 5mg pills cheap deltasone 40mg buy vermox 100mg for sale
tadalafil 20mg pills indomethacin price indocin 75mg tablet
order biaxin 250mg for sale oral antivert order antivert 25mg pill
buy albuterol cipro usa ciprofloxacin us
cialis tadalafil 40mg Approved cialis online casino for real cash
online slots for real money slot games free poker online for real money
ivermectin tablet buy stromectol generic order avlosulfon 100mg generic
play poker online real money online casino gambling slots online
order adalat online order nifedipine for sale fexofenadine 120mg cost
spins real money online real money online casinos usa essays writing
cheap essay help buy leflunomide without prescription azulfidine 500 mg price
doxycycline brand doxycycline 200mg drug cheap cleocin 300mg
cheap benicar 20mg verapamil cheap buy divalproex 250mg pill
purchase clobetasol without prescription buspirone 10mg canada buy cordarone 100mg sale
purchase diamox without prescription azathioprine pills purchase azathioprine generic
lanoxin online order oral digoxin order generic molnupiravir 200mg
buy generic coreg 25mg amitriptyline 10mg without prescription amitriptyline over the counter
purchase alendronate sale generic alendronate buy ibuprofen 600mg online
buy priligy 60mg generic domperidone 10mg sale domperidone canada
order generic pepcid 20mg remeron 30mg brand remeron oral
purchase fenofibrate without prescription viagra overnight delivery viagra sildenafil 25mg
cialis 10mg without prescription Cialis buy herbal ed pills
glycomet 500mg for sale purchase calan pill order generic nolvadex 10mg
buy modafinil generic purchase promethazine pill promethazine cheap
buy isotretinoin 20mg buy isotretinoin 10mg without prescription order ampicillin 250mg pill
buy ed pill mens ed pills oral finasteride
ivermectin nz buy stromectol online deltasone 40mg generic
provigil 100mg pill generic metoprolol 100mg purchase lopressor online cheap
avodart sale cheap keflex 500mg xenical for sale online
purchase vibra-tabs without prescription order zovirax 800mg without prescription zovirax 800mg without prescription
order generic oxybutynin 5mg ditropan order buy oxcarbazepine 300mg without prescription
cefdinir online cefdinir 300mg generic buy protonix 20mg
simvastatin uk phenergan ca sildalis pill
avlosulfon 100 mg usa order dapsone 100 mg online cheap where can i buy atenolol
order uroxatral 10 mg generic buy desyrel 50mg generic cheap diltiazem 180mg
sildenafil pharmacy viagra 100mg for sale brand cialis 40mg
buy zetia 10mg online buy generic sumycin 500mg methotrexate 2.5mg generic
buy coumadin sale purchase metoclopramide pill buy generic zyloprim over the counter
order zyrtec 5mg pill order zoloft 50mg pill oral zoloft 100mg
order atorvastatin online buy sildenafil 50mg online cheap purchase viagra online cheap
glucophage 1000mg oral generic norvasc 10mg norvasc 5mg usa
brand methotrexate brand methotrexate 2.5mg order metoclopramide online
sumycin ca buy baclofen for sale cheap baclofen
where to buy duloxetine without a prescription glipizide canada buy nootropil 800 mg without prescription
buy starlix paypal purchase candesartan for sale atacand us
estradiol 1mg cheap prazosin pills prazosin canada
careprost canada purchase careprost generic desyrel price
buy generic amoxicillin online buy biaxin 250mg online cheap clarithromycin 500mg us
catapres drug buy clonidine 0.1 mg pill order tiotropium bromide 9mcg
purchase minomycin pill buy minocin tablets pioglitazone over the counter
order leflunomide 10mg pill sildenafil 100mg order generic azulfidine 500mg
ivermectin 3 mg pills erectile dysfunction medicines cost deltasone 5mg
furosemide 100mg drug ventolin 4mg cost albuterol 2mg pills
cheap levitra 20mg purchase plaquenil for sale order plaquenil 400mg generic
buy altace for sale buy ramipril pills arcoxia 60mg cheap
buy vardenafil 10mg hydroxychloroquine oral hydroxychloroquine 400mg over the counter
benicar pills how to get depakote without a prescription how to buy depakote
temovate tablet buspar pill amiodarone 100mg canada
where to buy diamox without a prescription order azathioprine online cheap buy generic azathioprine for sale
coreg 25mg usa order cenforce generic buy aralen 250mg generic
order lanoxin online cheap order lanoxin 250 mg online cheap order molnupiravir 200mg generic
buy naproxen 500mg online oral lansoprazole 15mg prevacid ca
order singulair 5mg pill order symmetrel 100mg buy avlosulfon 100 mg pills
olumiant tablet buy metformin 1000mg for sale order lipitor 10mg generic
order adalat pills perindopril online buy fexofenadine 180mg generic
buy norvasc 10mg without prescription order amlodipine online cheap buy generic prilosec 20mg
diltiazem medication zyloprim 100mg oral buy zyloprim sale
buy aristocort paypal loratadine oral purchase claritin online
oral rosuvastatin crestor pills purchase motilium generic
ampicillin 250mg sale metronidazole 200mg tablet oral metronidazole 400mg
generic bactrim 960mg generic cleocin 150mg buy cleocin tablets
order generic erythromycin 250mg buy erythromycin 500mg pills oral tamoxifen 20mg
order metoclopramide pill buy esomeprazole 40mg pill nexium 40mg capsules
purchase budesonide inhalers buy ceftin 500mg pill buy generic careprost for sale
topiramate 100mg cost order sumatriptan 50mg generic order levofloxacin 250mg generic
order avodart generic buy generic dutasteride over the counter meloxicam 7.5mg uk
generic celecoxib 200mg purchase celecoxib online cheap order generic zofran 8mg
order lamictal 200mg online cheap buy lamotrigine sale minipress brand
where can i buy spironolactone aldactone cheap valtrex cheap
buy proscar 5mg online cheap sildenafil sale purchase sildenafil
tretinoin over the counter order retin sale avana pill
tadalafil 40mg sale cialis pills 20mg order sildenafil for sale
order tadalafil online indocin 75mg without prescription how to get indomethacin without a prescription
purchase terbinafine generic trimox 500mg pills oral amoxicillin 250mg
how to get azulfidine without a prescription order sulfasalazine sale calan price
depakote 250mg ca isosorbide buy online isosorbide 40mg generic
purchase dapsone pill buy nifedipine 30mg generic perindopril 4mg usa
fexofenadine tablet purchase fexofenadine online buy amaryl 4mg generic
albenza 400mg over the counter buy albendazole paypal buy generic provera
fluvoxamine online buy buy nizoral 200mg for sale cymbalta 40mg generic
buy clomipramine 25mg without prescription order prometrium 200mg cost progesterone
tacrolimus 5mg usa requip pills order requip pills
valsartan 160mg drug cheap diovan purchase ipratropium online cheap
cost calcitriol order fenofibrate 200mg generic how to buy tricor
order decadron 0,5 mg without prescription starlix buy online cost starlix 120mg
buy trileptal pills buy uroxatral pills order actigall 150mg generic
zyban 150mg generic cost zyban atomoxetine brand
order ciplox 500mg pills duricef oral cheap cefadroxil 250mg
buy seroquel 50mg pills buy generic quetiapine how to buy lexapro
buy cheap epivir purchase retrovir generic buy quinapril 10mg generic
fluoxetine 40mg generic sarafem pill letrozole over the counter
cheap bisoprolol 10mg brand indapamide terramycin us
valaciclovir tablet cotrimoxazole 960mg drug ofloxacin usa