我想檢查給定的類是否只有以下內容:
- 非靜態資料成員
- 建構式(默認或用戶定義)
- 解構式(默認或用戶定義)
除了用戶定義的建構式和解構式之外,這種型別將(至少在視覺上宣告)與 POD 型別相同。我試圖為這種型別找到一個術語,但我認為它不存在。
有沒有辦法檢查這一點,使用一些 SFINAE 黑客?
uj5u.com熱心網友回復:
不,沒有這樣的方法。考慮以下:
struct A { };
struct B { void UniqueFunctionName9814(); };
沒有 SFINAE 方法可以區分這些,因為您無法列舉成員函式名稱,也無法預測隨機函式名稱。因此B::UniqueFunctionName9814無法被檢測到,除此之外B::UniqueFunctionName9814這兩個類是相同的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402183.html
