1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
struct suppress;
struct merge;
struct classif;
struct for_each;
template <class Container, class Functor, class Flag>
void inspect( Container & x, Functor & fun )
{
//fait un truc
}
template <class Container, class Functor>
void inspect<Container, Functor, suppress> ( Container & x, Functor & fun )
{
//fait un autre truc
}
template <class Container, class Functor>
void inspect<Container, Functor, merge> ( Container & x, Functor & fun )
{
//fait encore un autre truc
}
//etc...
//et la fonction generique que j'appelle:
template <class Container, class Functor>
void inspect_generic ( Container & x, Functor & fun )
{
inspect<Container,Functor, Functor::flag_iter_process>( x, fun);
} |
Partager