是否可以在类层次结构中获取基类类型?
例如:
struct A{};
struct B{} : public A;
struct C{} : public B;
Run Code Online (Sandbox Code Playgroud)
我想要一些typedef Base<T>::Type内部像这样的模板:
Base<A>::Type == A
Base<B>::Type == A
Base<C>::Type == A
Run Code Online (Sandbox Code Playgroud)
这可能吗?我有多重继承的情况怎么样?
我正在编写一个模板,它真正需要了解其参数类型的所有基类.该std::bases提议特点N2965非常适合这一点,但是我无法找到有关其状态的任何可靠的信息.
这个提案还活着吗?如果是这样,我们什么时候可能会看到它,标准化?如果没有,是否有任何其他提议可以提供这种能力?
作为后续,G ++具有可作为两个N2965特质std::tr2::bases和std::tr2::direct_bases.Clang和/或Intel是否有任何可以提供同等功能的扩展?
昨天遇到了如何从某个类获取所有基类的问题.例如:
class Object
{
public:
Object() = default;
};
class DerivedOne
: public Object
{
public:
DerivedOne() = default;
};
class DerivedTwo
: public Object
, public DerivedOne
{
public:
DerivedTwo() = default;
};
Run Code Online (Sandbox Code Playgroud)
我想在typelist => {Object,DerivedOne,Object}中获取DerivedTwo的所有基类.需要多次拒绝来自Object类的继承.
有人这样的经验或知识怎么做?
c++ boost metaprogramming boost-mpl template-meta-programming