lundi 12 août 2019

Return different types with different template parameter value (but same type)

What I want to do is to define 3 functions like these:

template<int t = 0> int test() { return 8; }
template<int t = 1> float test() { return 8.8; }
template<int t = 2> std::string test() { return "8.9"; }

int main()
{
    int a = test<0>();
    float b = test<1>();
    std::string c = test<2>();
    return 0;
}

They use the same type of template parameter but return different types.

I believe there must be some way to do that (like std::get<>() does it), but I can not find how to do it.

Aucun commentaire:

Enregistrer un commentaire