比方說,我有這樣的在模板參數避免自動列出
template <auto Arg> class X;
類模板,但因爲我在模板參數列表使用MSVC 2017.5,auto
不支持,我必須寫
template <typename T, T Arg> class X;
並通過X<int, 5>
明確指定類型,而不是使用自動扣除。現在,有沒有辦法在模板參數列表中找到沒有auto
的相同結果?
具體而言,我有以下問題。
template <typename C, typename T>
using Func = const T& (C::*)(void) const;
template <typename C, typename T, Func<C, T> F>
class X;
而且我可以用X
這樣的:
class Y { const int &getInt() const; }
X<Y, int, &Y::getInt> x;
我當然希望避免Y
和int
如果可能的明確命名。
正在使用自動解決方案中的一個選項來解決實際問題,或者您是否真的想要避免自動?我不清楚,如果你只用它作爲例子。 – nyronium