我希望一个类从其基类“using
成员函数之一的返回类型创建protected
别名。但是,以下失败:
#include <type_traits>
class B
{
protected:
int fun(){return 0;}
};
class D : protected B
{
using T = decltype(std::declval<B>().fun());
};
main() {}
prog.cpp:5:6: error: ‘int B::fun()’ is protected int fun(){return 0;}
为什么D
无法访问其基础的受保护方法?