gpt4 book ai didi

c++ - 参数相关查找不起作用

转载 作者:行者123 更新时间:2023-11-28 02:19:23 27 4
gpt4 key购买 nike

<分区>

我是 C++ 的初学者。我正在学习 ADL(增强依赖查找)。据我了解,virtual_function_with_EnumInBase(B<T>::EnumInBase e)第 (1) 行可以通过 ADL 使用 B<T>::EnumInBase 查找.但是 gcc 4.9.2 给我错误信息:

virtual_function_with_EnumInBase was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation.

如果有人知道无法查找函数的原因或发现我的误解,请告诉我。非常感谢。

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();
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com