相关疑难解决方法(0)

C++:如何要求一个模板类型派生自另一个

在比较运算符中:

template<class R1, class R2>
bool operator==(Manager<R1> m1, Manager<R2> m2) {
    return m1.internal_field == m2.internal_field;
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以强制R1和R2必须有超类型或子类型关系?也就是说,我想允许R1从R2派生,或者R2从R1派生,但如果R1和R2是不相关的类型,则不允许比较.

c++ templates metaprogramming

14
推荐指数
2
解决办法
9691
查看次数

编译时检查基类是否为"接口"

事实证明,我原本想要的可能不可能不涉及C++ 11我想稍微改变一下要求并问你是否可以实现这一点.

上一个问题

基本上我想在一个类继承自"interface"时检查编译时间.通过接口我的意思是仅使用纯虚方法的类.我想做以下代码:

template <typename T>
class Impl : public T {
public:
STATIC_ASSERT_INTERFACE(T);
};
Run Code Online (Sandbox Code Playgroud)

这里的行为是,如果T只有纯虚方法,那么它将编译,如果其中一个方法不是那么失败.

任何人都可以想到这样的事情吗?

c++ compilation

6
推荐指数
1
解决办法
873
查看次数

标签 统计

c++ ×2

compilation ×1

metaprogramming ×1

templates ×1