[问题] parent class有办法求继承index吗?

楼主: johnjohnlin (嗯?)   2024-02-06 21:02:39
开发平台(Platform): (Ex: Win10, Linux, ...)
无指定,标准C++,可以在17或是之前的话最好
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
无指定
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
可以的话只用STL
问题(Question):
想请教一下,假设我有一个 class 是
class Derive: public B1, public B2
是否有简单的方法得到static constexpr的值
Derive::GetIndex(B1*) = 0
Derive::GetIndex(B2*) = 1
可以先不考虑多重、多层继承之类的复杂case
只需要先处理这种直接继承关系
谢谢各位了~
作者: CoNsTaR ((const *))   2024-02-06 23:29:00
template <typename T> auto getIndex() { return T::index; }这样有符合需求吗?
作者: fatrabitree (胖兔子)   2024-02-07 00:06:00
https://godbolt.org/z/zWTYeY79x再配合一下MACRO应该可以不用手动建set
作者: LPH66 (-6.2598534e+18f)   2024-02-07 01:18:00
我有点好奇“求多重继承指定父类的顺序”的用处在哪
楼主: johnjohnlin (嗯?)   2024-02-07 09:39:00
@LPH大大写我在写某个class继承了consumer/producer,使用者会用父接口呼叫这个class,然后我想要建出相依关系的topological graph二楼那个拿offset的方法好像可以试试看
作者: CoNsTaR ((const *))   2024-02-08 09:08:00
所以你不是想要得到 parent class 某个 constexpr 的值,你是要把 parent class 拿来排序
作者: firejox (Tangent)   2024-02-08 10:00:00
std variant
楼主: johnjohnlin (嗯?)   2024-02-08 11:09:00
variant不适用我的场景,我需要有继承关系
作者: LPH66 (-6.2598534e+18f)   2024-02-08 13:52:00
如果这个排序可以不必是继承顺序的话 (建图应该可以不是)typeid(型态) 所得到的 type_info 物件有 hash_code() 能用或者根本可以用此 type_info 的 before() 方法判断顺序

Links booklink

Contact Us: admin [ a t ] ucptt.com