小编Edw*_*win的帖子

SFINAE 和可变参数模板类

我正在创建一个class C从可变数量的类继承的。定义了这些类的列表,例如:A,B。在函数中,class C我需要从所有基类调用函数,但对象可以是C<A,B>C<A>或者C<B>如果我调用class Ain 的函数,C<B>我会得到一个错误。这是类的示例以及我如何尝试解决问题:

    class A
    {
        int a;
    public:
        virtual void set_a(const int &value)
        {
            a = value;
        }
    protected:
        virtual int get_a()
        {
            return this->a;
        }
    };
    class B
    {
        int b;
    public:
        virtual void set_b(const int &value)
        {
            b = value;
        }
    protected:
        virtual int get_b()
        {
            return this->b;
        }
    };
    template<class ...T>
    struct Has_A
    {
        template<class U = C<T...>> …
Run Code Online (Sandbox Code Playgroud)

c++ templates template-meta-programming variadic-templates c++11

3
推荐指数
1
解决办法
247
查看次数