lundi 22 août 2016

Call all possible template function in advance corresponding to ANOTHER template function

For every T in f2<T>() that might be called, how to force all f1<T> to be called in a certain function f1_advanced() in advance?

class Manager(){
    public: void f1_advanced (){ /* add code here */ }
    private: template<class T> void f1 (){  }
    public:  template<class T> void f2 (){  }
}


class Usage{
    void testCase(){
        Manager manager;
        //^^ Must call f1<A> and f1<B> automatically.
        //   Whether it calls f1<C> or not, both cases are ok for me.
        manager.f1_advanced();
        manager.f2<A>();
        manager.f2<B>();
        if(false) manager.f2<C>();
    }
}

Note: A, B, ... are derived from a certain class T0.

Aucun commentaire:

Enregistrer un commentaire