如何更改上述代码以允许使用两种向量数据类型而不是浮点数?
您不修改
std::floating_point
因为它
contains other float types
此外
float
.
因此,只需为场景编写自己的概念:
using myVec1 = std::vector<int>;
using myVec2 = std::vector<float>;
template<typename T>
concept MyVectorType = std::same_as<T, myVec1> || std::same_as<T, myVec2>;
template<MyVectorType T> void foo(const T& vec)
{
// ... implementation
}
或者只是使用
requires
约束类型
T
要么
int
或
浮动
.
template<typename T>
requires std::same_as<T, int> || std::same_as<T, float>
void foo(const std::vector<T>& vec)
{
// .... implementation
}