Search code examples
c++template-specializationclass-members

Specialize member function that returns void and have no parameters


Suppose i have this function:

class A {
    template<class Collider> void Init();
};

Can i specialize it for Sphere and Box?

I call this function from other template function, so it is not easy to just use InitForSphere and InitForBox.


Solution

  • Yes, you can.

    template<>
    void A::Init<Box>() {}
    
    template<>
    void A::Init<Sphere>() {}
    

    call it like

    A a;
    a.Init<Box>();