看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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 只需要先處理這種直接繼承關係 謝謝各位了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.50.210 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1707224562.A.55B.html
CoNsTaR: template <typename T> auto getIndex() { return T::ind 02/06 23:29
CoNsTaR: ex; } 02/06 23:29
CoNsTaR: 這樣有符合需求嗎? 02/06 23:29
fatrabitree: https://godbolt.org/z/zWTYeY79x 02/07 00:06
fatrabitree: 再配合一下MACRO應該可以不用手動建set 02/07 00:10
LPH66: 我有點好奇「求多重繼承指定父類的順序」的用處在哪 02/07 01:18
johnjohnlin: @LPH大大寫我在寫某個class繼承了consumer/producer 02/07 09:39
johnjohnlin: ,使用者會用父介面呼叫這個class,然後我想要建出 02/07 09:39
johnjohnlin: 相依關係的topological graph 02/07 09:39
johnjohnlin: 二樓那個拿offset的方法好像可以試試看 02/07 09:42
CoNsTaR: 所以你不是想要得到 parent class 某個 constexpr 的值, 02/08 09:08
CoNsTaR: 你是要把 parent class 拿來排序 02/08 09:08
firejox: std variant 02/08 10:00
johnjohnlin: variant不適用我的場景,我需要有繼承關係 02/08 11:09
LPH66: 如果這個排序可以不必是繼承順序的話 (建圖應該可以不是) 02/08 13:52
LPH66: typeid(型態) 所得到的 type_info 物件有 hash_code() 能用 02/08 13:52
LPH66: 或者根本可以用此 type_info 的 before() 方法判斷順序 02/08 13:52