在C++中,requires
關鍵字用于在模板中指定各種要求(constraints),以限制模板參數的類型范圍。通過使用requires
關鍵字,可以在模板定義中添加一些條件,只有滿足這些條件的模板參數才能被接受。
例如,以下代碼展示了一個使用requires
關鍵字的簡單示例:
template <typename T>
void print(T value) requires std::is_integral_v<T> {
std::cout << value << std::endl;
}
int main() {
print(5); // 正常編譯
print("hello"); // 編譯錯誤,不滿足requires條件
return 0;
}
在這個例子中,print
函數只有在模板參數T
為整數類型時才能被接受。如果模板參數不是整數類型,則會編譯錯誤。這樣可以在編譯時檢查模板參數的類型,避免在運行時出現意外的類型錯誤。