C++ 語言/模板/概念
外觀
傳統上,一個像 template<typename T> T Add(T x, T y) { return x + y; } 這樣的模板函式將允許使用任何型別進行替換(即使是像 T=std::string 這樣的型別,實際上不應該“加在一起”)。
您可以定義一個“概念”,它是一個邏輯標準,只有某些型別才能滿足:template<typename T> concept IS_ADDABLE = std::is_arithmetic<T>::value;。然後我們可以限制允許的替換:template<typename T> requires IS_ADDABLE<T> T Add(T x, T y) {...}。