我與指針到成員類型模板內的工作,目前我有事情是這樣的:帶有指向成員模板參數指針的隱含類型?
template <typename Base, typename Type, Type Base::* Var>
struct Member
{
//Stuff goes here.
};
但不必定義基地,類型,然後VAR,似乎有點多餘,因爲基本和類型隱含在Var的類型中。
有沒有辦法做到這一點,這樣,當使用/調用成員結構,它只需要使用單個指針成員參數?理論上,像這樣的東西:
template <typename Base, typename Type, Type Base::* Var>
struct Member<Var>
{
//stuff goes here
};
struct S
{
int memberVal;
};
int main()
{
Member<&S::memberVal> example;
};
感謝您的幫助!
從理論上講,它是否可以添加到C++標準中,或者是否存在一些邏輯缺陷或謬誤,從理論上來說會妨礙這一點? – Serge 2012-08-08 04:04:21
我沒有看到你提議的缺陷。另一方面,模板已經被覆蓋。這是不太可能的。 Presonally在添加此功能時看不到「重大」收益。順便說一下,每個人都可以提出改變。 C++委員會非常民主。 – 2012-08-08 04:07:05
正確;然而,儘管它很小,但在極少數情況下可能會出現,它可以節省大量的樣板代碼。我認爲這個建議總的來說就是在模板參數列表中隱含類型常量......這是我在2天內發現的第二個「C++不穩定性」問題......昨天,它是缺少指向成員成員的問題。 – Serge 2012-08-08 04:13:56