Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
依赖预兆的查找不起作用 我是C++初学者。我正在学习ADL(增强依赖查找)。 据我所知,ADL可以使用B::EnumInBase查找第(1)行带有_EnumInBase(B::EnumInBase e)的虚拟函数。 但是,gcc 4.9.2给出了错误消息:_C++_Templates - Fatal编程技术网

依赖预兆的查找不起作用 我是C++初学者。我正在学习ADL(增强依赖查找)。 据我所知,ADL可以使用B::EnumInBase查找第(1)行带有_EnumInBase(B::EnumInBase e)的虚拟函数。 但是,gcc 4.9.2给出了错误消息:

依赖预兆的查找不起作用 我是C++初学者。我正在学习ADL(增强依赖查找)。 据我所知,ADL可以使用B::EnumInBase查找第(1)行带有_EnumInBase(B::EnumInBase e)的虚拟函数。 但是,gcc 4.9.2给出了错误消息:,c++,templates,C++,Templates,virtual\u function\u with_EnumInBase未在此作用域中声明,并且在实例化点通过依赖于参数的查找未找到任何声明 如果有人知道它无法查找函数的原因或注意到我的误解,请告诉我。 多谢各位 template<typename T> class B { public: virtual ~B() = default; enum EnumInBase { e0 = 0, e1 = 1 }; virtual void virtual_funct

virtual\u function\u with_EnumInBase
未在此作用域中声明,并且在实例化点通过依赖于参数的查找未找到任何声明

如果有人知道它无法查找函数的原因或注意到我的误解,请告诉我。 多谢各位

template<typename T>
class B {
public:
    virtual ~B() = default;
    enum EnumInBase { e0 = 0, e1 = 1 };
    virtual void virtual_function_with_EnumInBase(EnumInBase e) {
        std::cout << "B::virtual_function_with_EnumInBase(EnumInBase e)" << std::endl;
    }
};

template<typename T>
class D : public B<T> {
public:
    virtual ~D() = default;
    void virtual_function_test(void) {
        typename B<T>::EnumInBase val_for_lookup = B<T>::e0;
        virtual_function_with_EnumInBase(val_for_lookup);  // line (1)
    }
};

void test(void) {
    D<double> a;
    a.virtual_function_test();
}
模板
B类{
公众:
virtual~B()=默认值;
enum EnumInBase{e0=0,e1=1};
带枚举基的虚空虚函数(枚举基e){

std::cout您需要使用_EnumInBase
和this作为调用
虚拟_函数的前缀,例如,
this->virtual _function _和_EnumInBase()


这取决于模板中名称查找的工作方式。有关更多详细信息,请参阅和。

谢谢Maxim Egorushkin。我将阅读您推荐的网站。