dimanche 8 novembre 2020

how to resolve this question about variadic nontype template parameter using c++11

enum Enum
{
    e0,
    e1,
    e2
};

int translate(Enum e)
{
    //...
}

int translate(Enum e, int index)
{
    //...
}

class A
{
public:
    template<typename... Ts>
    A(Ts... ts)
    {
        //...
    }

};

template<Enum... es>
class B
{
public:
    static std::shared_ptr<A> getA()
    {
        //for example,use "int translate(Enum e)"
        //return std::make_shared<A>(translate(es)...);

        //use "int translate(Enum e, int index)"    "index" like the index in "for(int index = 0; index < n; ++index)"
        //how to writer?
    }
};

this is about variadic nontype template parameter, i want to use c++11 to resolve it.

for example:

std::make_shared(translate(e1, 0), translate(e2, 1), translate(e3, 2))

std::make_shared(translate(e1, 0), translate(e2, 1))

std::make_shared(translate(e3, 0), translate(e0, 1))

Aucun commentaire:

Enregistrer un commentaire