4
以下是什麼結果?它是不合格的,未定義的行爲還是定義良好的?pointer_traits爲既不是X <A, T...>也不提供成員typedef element_type的類型提供了什麼?
struct A {};
std::pointer_traits<A> x;
我問的原因是因爲我想知道好奇心,並且因爲我想知道任意類型是否是指針。與此同時我也意味着包括shared_ptr和朋友。我想知道是否有類型特徵(謂詞),或者如果不是,我是否可以使用pointer_traits並檢測是否聲明瞭element_type。
謝謝。你知道什麼是最好的方式來查詢某種類型是否「指針」? – 2013-03-11 22:02:25
@Johannes:定義「像指針一樣」。你可以通過表達式SFINAE創建某種概念。 – Xeo 2013-03-11 22:05:20
檢查是否存在'element_type'會得到標準的「類指針類型」,但由於形式爲'SomePointer'的任何東西也是可以接受的,所以我不確定(標準似乎也沒有明確說明「指針類型「意味着AFAICT)。 –
2013-03-11 22:07:02