相关疑难解决方法(0)

获取类层次结构中类型的基类

是否可以在类层次结构中获取基类类型?

例如:

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)

这可能吗?我有多重继承的情况怎么样?

c++ c++11

13
推荐指数
3
解决办法
9602
查看次数

N2965的状态是什么 - std :: bases和std :: direct_bases?

我正在编写一个模板,它真正需要了解其参数类型的所有基类.该std::bases提议特点N2965非常适合这一点,但是我无法找到有关其状态的任何可靠的信息.

这个提案还活着吗?如果是这样,我们什么时候可能会看到它,标准化?如果没有,是否有任何其他提议可以提供这种能力?

作为后续,G ++具有可作为两个N2965特质std::tr2::basesstd::tr2::direct_bases.Clang和/或Intel是否有任何可以提供同等功能的扩展?

c++ c++11 c++-tr2

12
推荐指数
1
解决办法
1843
查看次数

获取所有基类[元编程]

昨天遇到了如何从某个类获取所有基类的问题.例如:

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

5
推荐指数
1
解决办法
268
查看次数