Re: [問題] parent class有辦法求繼承index嗎?

作者: johnjohnlin (嗯?)   2024-02-07 22:11:25
自問自答一下
看了推文的作法忽然有了靈感,想到簡單寫法了
原理:
可以繼承 varadic template
作一個類似CRTP的helper class,把要繼承的class拉進來,由helper繼承
class Derived : Helper<Base1, Base2> 這樣
接著在 Helper 裡面實做 GetIndex
POC:
https://godbolt.org/z/q8easzezr
※ 引述《johnjohnlin ()》之銘言:
: 開發平台(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
: 只需要先處理這種直接繼承關係
: 謝謝各位了~

Links booklink

Contact Us: admin [ a t ] ucptt.com