型模板參數我定義的類模板X
這樣的:自動推導出從依賴非類型模板參數
template <typename T>
using Func = void(T);
template <typename T, Func<T> F>
class X { ... };
現在我可以使用X
類是這樣的:
void func(int i);
X<int, &func> x;
它對於我在x
的聲明中重複int
類型似乎是多餘的。有沒有一種方法可以自動演繹出來?我的意思是我想要一個類型模板Y
,可以通過Y<&func>
使用,等於X<int, &func>
,自動推導出int
。
我嘗試了很多,甚至瘋狂的定義模板的功能和使用decltype
,但似乎沒有辦法的&func
命名之前下降了T
。
更新:這似乎是我使用MSVC 2017.5防止我從Kerrek的建議在模板參數列表使用auto
的限制。我不知道是否有一些「黑客」沒有這個功能獲得相同的效果。
一個典型的 「黑客」 之前C++ 17使用人涉及一個輔助函數聲明,'decltype'和宏。 –