我想检测一个函数是否(静态)在派生类中被覆盖:
template< typename T >
struct A{ void func(){ static_cast<T*>(this)->func(); } };
struct B: A<B>{};
struct C: A<C>{ void func(){ std::cout << "class C" << std::endl; };
C c;
if(&A<C>::func != &C::func)
c.func();
显然,如果它没有覆盖,我不会调用'func'。我更喜欢直接回答我的问题。讲述实际问题以确定过载。我还将感谢任何显示解决一般问题的其他方法的答案。
好的,它编译,我还没有找到我的实际代码的区别,那没有。顺便说一句,在我的实际代码中,我不只是试图避免调用该函数,还有更多。我真的很想知道该函数是否被覆盖,或者我是否需要使用完全不同的方法。