gpt4 book ai didi

c++ - 防止两个类从具有相同模板参数的基类继承

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:33 25 4
gpt4 key购买 nike

我有一个假设是基类的类:

template<int ID>
class BaseClass { ... };

如果两个类尝试使用相同的 ID 值从该基类继承,我该如何使编译时错误出现。也就是说 - 这段代码应该可以工作:

class A : BaseClass<1> { ... }
class B : BaseClass<2> { ... }

但是这段代码可能会导致错误:

class A : BaseClass<1> { ... }
class B : BaseClass<1> { ... }

如何才能做到这一点?BOOST_STATIC_ASSERT 有帮助吗?

最佳答案

我认为这是不可能的。

如果可能,那么我们也可以让编译器为以下代码生成错误,这在概念上等同于您的代码。

struct Base {};
struct OtherBase {};

struct A : Base {}; //Base is used here!
struct B : Base {}; // error - used base class. please use some other base!
struct C : OtherBase {}; // ok - unused based!

关于c++ - 防止两个类从具有相同模板参数的基类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5298466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com