#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <functional>
using namespace std;
template<typename T, size_t Size>
class Values
{
static_assert(Size > 1,"use a scalar");// 条件,信息
T values[Size];
};
template<typename T,typename U>
auto add(T t, U u)
{
static_assert(is_integral<T>::value,"first value must be int");//判断T泛型,是不是int
return t + u;
}
int main()
{
// Values<int,1> stuff; // error,不满足条件,输出提示信息
// cout << add(string("a"),"b") << endl;// error,第一个参数的类型必须是int
cout << add(1,2) << endl;
return 0;
}
static_assert
最新推荐文章于 2024-11-04 16:58:15 发布
该代码示例展示了如何在C++中使用模板类和泛型函数,并应用静态断言进行类型检查。Values类模板要求其大小必须大于1,而add函数模板确保第一个参数为整型。在main函数中,错误的类型使用导致了编译错误,强调了静态类型检查的重要性。
摘要由CSDN通过智能技术生成