跳轉到內容

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) {...}

有關“概念”的更多資訊

華夏公益教科書