了解std::enable_if:條件模板專業化指南
簡介
簡介template<typename T> typename std::enable_if<std::numeric_limits<T>::is_integer, void>::type foo(const T &bar) { isInt(bar); }
中在🎜>中在🎜>
Enable-if 機制template<bool Cond, class T = void> struct enable_if {}; template<class T> struct enable_if<true, T> { typedef T type; };
透過根據布林條件(Cond)的值自訂其模板實例化,std::enable_if 決定是否可以定義特定類型(T)。例如,在提供的程式碼片段中, std::numeric_limits
template<typename T, typename std::enable_if<std::is_integral<T>::value, int>::type = 0> void foo(const T& bar) { isInt(); }
預設值(本例為「int」)允許成功呼叫 foo
以上是`std::enable_if` 如何在 C 中啟用條件範本專門化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!