gpt4 book ai didi

c++ - 有没有办法使用静态断言和类型特征来防止类被派生两次?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:23 26 4
gpt4 key购买 nike

我意识到这是一个人为的例子,但我想要一个编译检查来防止这种情况......

class A {};
class B : public A {};
class C : public A {};

class D : public B, public C
{
BOOST_STATIC_ASSERT((is_base_of_once<A,D>::value))
};

最佳答案

以下应该有效:

BOOST_STATIC_ASSERT(((A*)(D*)0 == 0)) 

如果 A 存在两次,这应该会产生歧义错误,否则测试将始终成功(因为它比较两个空指针)。

关于c++ - 有没有办法使用静态断言和类型特征来防止类被派生两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851583/

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