2010-01-23 70 views

回答

15

你不能通過類型特徵解決這個問題,因爲你必須爲每個可能的名字定義。

Here是列出的常見解決方案,雖然有一個問題:許多STL實現將通用代碼放在基類中,並且此方法不檢查繼承名稱。

如果您還需要檢查遺傳成員,請參閱here。答案提供了一種解決方案,用於檢查相關類是否具有該名稱的成員,還可以檢查常量和參數計數。但是,它會檢查包括參數和返回類型在內的完整簽名,並且會員可見性沒有任何區別。你應該能夠部分地通過使用鏈接的is_call_possible<>來解決這個問題(還沒有時間看它)。

+4

每當我看到'is_call_possible'線程時,有一點讓我害怕。 – GManNickG 2010-01-23 06:24:21

+0

我的俄羅斯人正在付清,謝謝 – Anycorn 2010-01-23 06:27:14

+0

@GMan:下個月我必須採取內心和攻擊;) – 2010-01-23 06:27:20