Show
Ignore:
Timestamp:
12/19/07 17:56:03 (10 months ago)
Author:
cneumann
Message:

changed: generic interface activated
fixed: single parent unlinking

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Carsten_PtrWork2/Source/Base/Base/OSGBaseFunctions.h

    r1030 r1033  
    646646}; 
    647647 
    648 /*---------------------------------------------------------------------*/ 
    649 /*  EvalSwitch                                                       */ 
    650  
    651 /* 1 Case Statement ---------------------------------------------------*/ 
    652  
    653 template <bool CondB0, class MetaFuncT0, class MetaFuncDefaultT> 
    654 struct EvalSwitch1; 
    655  
    656 template <class MetaFuncT0, class MetaFuncDefaultT> 
    657 struct EvalSwitch1<true, MetaFuncT0, MetaFuncDefaultT> 
    658     : public MetaFuncT0 
    659 
    660 }; 
    661  
    662 template <class MetaFuncT0, class MetaFuncDefaultT> 
    663 struct EvalSwitch1<false, MetaFuncT0, MetaFuncDefaultT>  
    664     : public MetaFuncDefaultT 
    665 
    666 }; 
    667  
    668 /* 2 Case Statements --------------------------------------------------*/ 
    669  
    670 template <bool CondB0, class MetaFuncT0, 
    671           bool CondB1, class MetaFuncT1, class MetaFuncDefaultT> 
    672 struct EvalSwitch2; 
    673  
    674 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncDefaultT> 
    675 struct EvalSwitch2<true,  MetaFuncT0, 
    676                    false, MetaFuncT1, MetaFuncDefaultT> 
    677     : public MetaFuncT0 
    678 
    679 }; 
    680  
    681 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncDefaultT> 
    682 struct EvalSwitch2<false, MetaFuncT0, 
    683                    true,  MetaFuncT1, MetaFuncDefaultT> 
    684     : public MetaFuncT1 
    685 
    686 }; 
    687  
    688 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncDefaultT> 
    689 struct EvalSwitch2<false, MetaFuncT0, 
    690                    false, MetaFuncT1, MetaFuncDefaultT> 
    691     : public MetaFuncDefaultT                    
    692 
    693 }; 
    694  
    695 /* 3 Case Statements --------------------------------------------------*/ 
    696  
    697 template <bool CondB0, class MetaFuncT0, 
    698           bool CondB1, class MetaFuncT1, 
    699           bool CondB2, class MetaFuncT2, class MetaFuncDefaultT> 
    700 struct EvalSwitch3; 
    701  
    702 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    703           class MetaFuncDefaultT> 
    704 struct EvalSwitch3<true,  MetaFuncT0, 
    705                    false, MetaFuncT1, 
    706                    false, MetaFuncT2, MetaFuncDefaultT> 
    707     : public MetaFuncT0 
    708 
    709 }; 
    710  
    711 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    712           class MetaFuncDefaultT> 
    713 struct EvalSwitch3<false, MetaFuncT0, 
    714                    true,  MetaFuncT1, 
    715                    false, MetaFuncT2, MetaFuncDefaultT> 
    716     : public MetaFuncT1 
    717 
    718 }; 
    719  
    720 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    721           class MetaFuncDefaultT> 
    722 struct EvalSwitch3<false, MetaFuncT0, 
    723                    false, MetaFuncT1, 
    724                    true,  MetaFuncT2, MetaFuncDefaultT> 
    725     : public MetaFuncT2 
    726 
    727 }; 
    728  
    729 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    730           class MetaFuncDefaultT> 
    731 struct EvalSwitch3<false, MetaFuncT0,  
    732                    false, MetaFuncT1, 
    733                    false, MetaFuncT2, MetaFuncDefaultT> 
    734     : public MetaFuncDefaultT 
    735 
    736 }; 
    737  
    738 /* 4 Case Statements --------------------------------------------------*/ 
    739  
    740 template <bool CondB0, class MetaFuncT0, 
    741           bool CondB1, class MetaFuncT1, 
    742           bool CondB2, class MetaFuncT2, 
    743           bool CondB3, class MetaFuncT3, class MetaFuncDefaultT> 
    744 struct EvalSwitch4; 
    745  
    746 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    747           class MetaFuncT3, class MetaFuncDefaultT> 
    748 struct EvalSwitch4<true,  MetaFuncT0, 
    749                    false, MetaFuncT1, 
    750                    false, MetaFuncT2, 
    751                    false, MetaFuncT3, MetaFuncDefaultT> 
    752     : public MetaFuncT0 
    753 
    754 }; 
    755  
    756 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    757           class MetaFuncT3, class MetaFuncDefaultT> 
    758 struct EvalSwitch4<false, MetaFuncT0, 
    759                    true,  MetaFuncT1, 
    760                    false, MetaFuncT2, 
    761                    false, MetaFuncT3, MetaFuncDefaultT> 
    762     : public MetaFuncT1 
    763 
    764 }; 
    765  
    766 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    767           class MetaFuncT3, class MetaFuncDefaultT> 
    768 struct EvalSwitch4<false, MetaFuncT0, 
    769                    false, MetaFuncT1, 
    770                    true,  MetaFuncT2, 
    771                    false, MetaFuncT3, MetaFuncDefaultT> 
    772     : public MetaFuncT2 
    773 
    774 }; 
    775  
    776 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    777           class MetaFuncT3, class MetaFuncDefaultT> 
    778 struct EvalSwitch4<false, MetaFuncT0,  
    779                    false, MetaFuncT1, 
    780                    false, MetaFuncT2, 
    781                    true,  MetaFuncT3, MetaFuncDefaultT> 
    782     : public MetaFuncT3 
    783 
    784 }; 
    785  
    786 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    787           class MetaFuncT3, class MetaFuncDefaultT> 
    788 struct EvalSwitch4<false, MetaFuncT0,  
    789                    false, MetaFuncT1, 
    790                    false, MetaFuncT2, 
    791                    false, MetaFuncT3, MetaFuncDefaultT> 
    792     : public MetaFuncDefaultT 
    793 
    794 }; 
    795  
    796 /* 5 Case Statements --------------------------------------------------*/ 
    797  
    798 template <bool CondB0, class MetaFuncT0, 
    799           bool CondB1, class MetaFuncT1, 
    800           bool CondB2, class MetaFuncT2, 
    801           bool CondB3, class MetaFuncT3, 
    802           bool CondB4, class MetaFuncT4, class MetaFuncDefaultT> 
    803 struct EvalSwitch5; 
    804  
    805 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    806           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
    807 struct EvalSwitch5<true,  MetaFuncT0, 
    808                    false, MetaFuncT1, 
    809                    false, MetaFuncT2, 
    810                    false, MetaFuncT3, 
    811                    false, MetaFuncT4, MetaFuncDefaultT> 
    812     : public MetaFuncT0 
    813 
    814 }; 
    815  
    816 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    817           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
    818 struct EvalSwitch5<false, MetaFuncT0, 
    819                    true,  MetaFuncT1, 
    820                    false, MetaFuncT2, 
    821                    false, MetaFuncT3, 
    822                    false, MetaFuncT4, MetaFuncDefaultT> 
    823     : public MetaFuncT1 
    824 
    825 }; 
    826  
    827 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    828           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
    829 struct EvalSwitch5<false, MetaFuncT0, 
    830                    false, MetaFuncT1, 
    831                    true,  MetaFuncT2, 
    832                    false, MetaFuncT3, 
    833                    false, MetaFuncT4, MetaFuncDefaultT> 
    834     : public MetaFuncT2 
    835 
    836 }; 
    837  
    838 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    839           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
    840 struct EvalSwitch5<false, MetaFuncT0,  
    841                    false, MetaFuncT1, 
    842                    false, MetaFuncT2, 
    843                    true,  MetaFuncT3, 
    844                    false, MetaFuncT4, MetaFuncDefaultT> 
    845     : public MetaFuncT3 
    846 
    847 }; 
    848  
    849 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    850           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
    851 struct EvalSwitch5<false, MetaFuncT0,  
    852                    false, MetaFuncT1, 
    853                    false, MetaFuncT2, 
    854                    false, MetaFuncT3, 
    855                    true,  MetaFuncT4, MetaFuncDefaultT> 
    856     : public MetaFuncT4 
    857 
    858 }; 
    859  
    860 template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
    861           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
    862 struct EvalSwitch5<false, MetaFuncT0,  
    863                    false, MetaFuncT1, 
    864                    false, MetaFuncT2, 
    865                    false, MetaFuncT3, 
    866                    false, MetaFuncT4, MetaFuncDefaultT> 
    867     : public MetaFuncDefaultT 
    868 
    869 }; 
     648// /*---------------------------------------------------------------------*/ 
     649// /*  EvalSwitch                                                       */ 
     650//  
     651// /* 1 Case Statement ---------------------------------------------------*/ 
     652//  
     653// template <bool CondB0, class MetaFuncT0, class MetaFuncDefaultT> 
     654// struct EvalSwitch1; 
     655//  
     656// template <class MetaFuncT0, class MetaFuncDefaultT> 
     657// struct EvalSwitch1<true, MetaFuncT0, MetaFuncDefaultT> 
     658//     : public MetaFuncT0 
     659//
     660// }; 
     661//  
     662// template <class MetaFuncT0, class MetaFuncDefaultT> 
     663// struct EvalSwitch1<false, MetaFuncT0, MetaFuncDefaultT>  
     664//     : public MetaFuncDefaultT 
     665//
     666// }; 
     667//  
     668// /* 2 Case Statements --------------------------------------------------*/ 
     669//  
     670// template <bool CondB0, class MetaFuncT0, 
     671//           bool CondB1, class MetaFuncT1, class MetaFuncDefaultT> 
     672// struct EvalSwitch2; 
     673//  
     674// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncDefaultT> 
     675// struct EvalSwitch2<true,  MetaFuncT0, 
     676//                    false, MetaFuncT1, MetaFuncDefaultT> 
     677//     : public MetaFuncT0 
     678//
     679// }; 
     680//  
     681// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncDefaultT> 
     682// struct EvalSwitch2<false, MetaFuncT0, 
     683//                    true,  MetaFuncT1, MetaFuncDefaultT> 
     684//     : public MetaFuncT1 
     685//
     686// }; 
     687//  
     688// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncDefaultT> 
     689// struct EvalSwitch2<false, MetaFuncT0, 
     690//                    false, MetaFuncT1, MetaFuncDefaultT> 
     691//     : public MetaFuncDefaultT                    
     692//
     693// }; 
     694//  
     695// /* 3 Case Statements --------------------------------------------------*/ 
     696//  
     697// template <bool CondB0, class MetaFuncT0, 
     698//           bool CondB1, class MetaFuncT1, 
     699//           bool CondB2, class MetaFuncT2, class MetaFuncDefaultT> 
     700// struct EvalSwitch3; 
     701//  
     702// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     703//           class MetaFuncDefaultT> 
     704// struct EvalSwitch3<true,  MetaFuncT0, 
     705//                    false, MetaFuncT1, 
     706//                    false, MetaFuncT2, MetaFuncDefaultT> 
     707//     : public MetaFuncT0 
     708//
     709// }; 
     710//  
     711// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     712//           class MetaFuncDefaultT> 
     713// struct EvalSwitch3<false, MetaFuncT0, 
     714//                    true,  MetaFuncT1, 
     715//                    false, MetaFuncT2, MetaFuncDefaultT> 
     716//     : public MetaFuncT1 
     717//
     718// }; 
     719//  
     720// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     721//           class MetaFuncDefaultT> 
     722// struct EvalSwitch3<false, MetaFuncT0, 
     723//                    false, MetaFuncT1, 
     724//                    true,  MetaFuncT2, MetaFuncDefaultT> 
     725//     : public MetaFuncT2 
     726//
     727// }; 
     728//  
     729// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     730//           class MetaFuncDefaultT> 
     731// struct EvalSwitch3<false, MetaFuncT0,  
     732//                    false, MetaFuncT1, 
     733//                    false, MetaFuncT2, MetaFuncDefaultT> 
     734//     : public MetaFuncDefaultT 
     735//
     736// }; 
     737//  
     738// /* 4 Case Statements --------------------------------------------------*/ 
     739//  
     740// template <bool CondB0, class MetaFuncT0, 
     741//           bool CondB1, class MetaFuncT1, 
     742//           bool CondB2, class MetaFuncT2, 
     743//           bool CondB3, class MetaFuncT3, class MetaFuncDefaultT> 
     744// struct EvalSwitch4; 
     745//  
     746// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     747//           class MetaFuncT3, class MetaFuncDefaultT> 
     748// struct EvalSwitch4<true,  MetaFuncT0, 
     749//                    false, MetaFuncT1, 
     750//                    false, MetaFuncT2, 
     751//                    false, MetaFuncT3, MetaFuncDefaultT> 
     752//     : public MetaFuncT0 
     753//
     754// }; 
     755//  
     756// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     757//           class MetaFuncT3, class MetaFuncDefaultT> 
     758// struct EvalSwitch4<false, MetaFuncT0, 
     759//                    true,  MetaFuncT1, 
     760//                    false, MetaFuncT2, 
     761//                    false, MetaFuncT3, MetaFuncDefaultT> 
     762//     : public MetaFuncT1 
     763//
     764// }; 
     765//  
     766// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     767//           class MetaFuncT3, class MetaFuncDefaultT> 
     768// struct EvalSwitch4<false, MetaFuncT0, 
     769//                    false, MetaFuncT1, 
     770//                    true,  MetaFuncT2, 
     771//                    false, MetaFuncT3, MetaFuncDefaultT> 
     772//     : public MetaFuncT2 
     773//
     774// }; 
     775//  
     776// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     777//           class MetaFuncT3, class MetaFuncDefaultT> 
     778// struct EvalSwitch4<false, MetaFuncT0,  
     779//                    false, MetaFuncT1, 
     780//                    false, MetaFuncT2, 
     781//                    true,  MetaFuncT3, MetaFuncDefaultT> 
     782//     : public MetaFuncT3 
     783//
     784// }; 
     785//  
     786// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     787//           class MetaFuncT3, class MetaFuncDefaultT> 
     788// struct EvalSwitch4<false, MetaFuncT0,  
     789//                    false, MetaFuncT1, 
     790//                    false, MetaFuncT2, 
     791//                    false, MetaFuncT3, MetaFuncDefaultT> 
     792//     : public MetaFuncDefaultT 
     793//
     794// }; 
     795//  
     796// /* 5 Case Statements --------------------------------------------------*/ 
     797//  
     798// template <bool CondB0, class MetaFuncT0, 
     799//           bool CondB1, class MetaFuncT1, 
     800//           bool CondB2, class MetaFuncT2, 
     801//           bool CondB3, class MetaFuncT3, 
     802//           bool CondB4, class MetaFuncT4, class MetaFuncDefaultT> 
     803// struct EvalSwitch5; 
     804//  
     805// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     806//           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
     807// struct EvalSwitch5<true,  MetaFuncT0, 
     808//                    false, MetaFuncT1, 
     809//                    false, MetaFuncT2, 
     810//                    false, MetaFuncT3, 
     811//                    false, MetaFuncT4, MetaFuncDefaultT> 
     812//     : public MetaFuncT0 
     813//
     814// }; 
     815//  
     816// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     817//           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
     818// struct EvalSwitch5<false, MetaFuncT0, 
     819//                    true,  MetaFuncT1, 
     820//                    false, MetaFuncT2, 
     821//                    false, MetaFuncT3, 
     822//                    false, MetaFuncT4, MetaFuncDefaultT> 
     823//     : public MetaFuncT1 
     824//
     825// }; 
     826//  
     827// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     828//           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
     829// struct EvalSwitch5<false, MetaFuncT0, 
     830//                    false, MetaFuncT1, 
     831//                    true,  MetaFuncT2, 
     832//                    false, MetaFuncT3, 
     833//                    false, MetaFuncT4, MetaFuncDefaultT> 
     834//     : public MetaFuncT2 
     835//
     836// }; 
     837//  
     838// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     839//           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
     840// struct EvalSwitch5<false, MetaFuncT0,  
     841//                    false, MetaFuncT1, 
     842//                    false, MetaFuncT2, 
     843//                    true,  MetaFuncT3, 
     844//                    false, MetaFuncT4, MetaFuncDefaultT> 
     845//     : public MetaFuncT3 
     846//
     847// }; 
     848//  
     849// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     850//           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
     851// struct EvalSwitch5<false, MetaFuncT0,  
     852//                    false, MetaFuncT1, 
     853//                    false, MetaFuncT2, 
     854//                    false, MetaFuncT3, 
     855//                    true,  MetaFuncT4, MetaFuncDefaultT> 
     856//     : public MetaFuncT4 
     857//
     858// }; 
     859//  
     860// template <class MetaFuncT0, class MetaFuncT1, class MetaFuncT2, 
     861//           class MetaFuncT3, class MetaFuncT4, class MetaFuncDefaultT> 
     862// struct EvalSwitch5<false, MetaFuncT0,  
     863//                    false, MetaFuncT1, 
     864//                    false, MetaFuncT2, 
     865//                    false, MetaFuncT3, 
     866//                    false, MetaFuncT4, MetaFuncDefaultT> 
     867//     : public MetaFuncDefaultT 
     868//
     869// }; 
    870870 
    871871/*---------------------------------------------------------------------*/