在C++中,requires
关键字用于在模板中指定各种要求(constraints),以限制模板参数的类型范围。通过使用requires
关键字,可以在模板定义中添加一些条件,只有满足这些条件的模板参数才能被接受。
例如,以下代码展示了一个使用requires
关键字的简单示例:
templatevoid print(T value) requires std::is_integral_v { std::cout << value << std::endl; } int main() { print(5); // 正常编译 print("hello"); // 编译错误,不满足requires条件 return 0; }
在这个例子中,print
函数只有在模板参数T
为整数类型时才能被接受。如果模板参数不是整数类型,则会编译错误。这样可以在编译时检查模板参数的类型,避免在运行时出现意外的类型错误。