在C++中,static_assert
允许你在编译时进行断言检查
#include <iostream>
#include <type_traits>
template <typename T>
void my_function(T t) {
// 在这里使用你的函数实现
}
int main() {
// 使用static_assert进行类型检查
static_assert(std::is_integral<int>::value, "int类型是必需的");
static_assert(std::is_floating_point<double>::value, "double类型是必需的");
my_function(42); // 正确:int类型
// my_function(3.14); // 错误:double类型是必需的
return 0;
}
在这个例子中,我们使用了std::is_integral
和std::is_floating_point
来检查模板参数T
是否为整数或浮点数。如果类型不匹配,编译器将显示自定义的错误消息。
你可以根据需要创建自己的类型特性(type traits)或者使用标准库提供的类型特性来定制static_assert
的错误消息。