C++ 模板别名可以用作函数输入类型吗?
我想知道是否可以将模板别名作为函数输入类型,并且可以根据输入进一步确定“进一步”类型 样板 使用Vec=std::vector; 我想定义一个函数:C++ 模板别名可以用作函数输入类型吗?,c++,templates,generics,C++,Templates,Generics,我想知道是否可以将模板别名作为函数输入类型,并且可以根据输入进一步确定“进一步”类型 样板 使用Vec=std::vector; 我想定义一个函数: void func(Vec& a){ for(auto &each :a){ //Do something } } 其中,可根据输入a导出Vec的类型 在这样的示例中,相同的func可以应用于所有as std::vector 我有这样一个问题,因为我有一个向量初始化在第一个开始,并运行一系列的功能 a = Vec&
void func(Vec& a){
for(auto &each :a){
//Do something
}
}
其中,可根据输入a导出Vec的类型
在这样的示例中,相同的func可以应用于所有as std::vector
我有这样一个问题,因为我有一个向量初始化在第一个开始,并运行一系列的功能
a = Vec<int>;
fun1(a);
fun2(a);
...
funN(a);
基本上,我必须为每个函数将int改为double。我期待一些更简单的方法来实现这一点。多亏了,模板已经按照您想要的方式运行了
将func定义为
我会让你写的
Vec<int> a{};
func(a);
Vec<double> b{};
func(b);
调用站点不需要显式类型参数。多亏了,模板已经按照您想要的方式运行
将func定义为
我会让你写的
Vec<int> a{};
func(a);
Vec<double> b{};
func(b);
调用站点不需要显式类型参数。普通旧模板函数有什么问题吗?模板void funcVec&?Vec不能作为类型使用,除非提供模板参数来实例化它。如果我有多个func-s,但它们将用作我在第一个开始时设置的某个Vec的相同类型。每次调用每个函数时都必须键入类型“``func1”,这不会有点麻烦吗?@abc您的问题没有意义,请提供一个您试图解决的问题。Re:如果我使用旧模板函数,它将是,不,这不是必需的。您是否尝试过创建模板函数?你知道C++有什么吗?一个普通的模板函数有什么问题吗?模板void funcVec&?Vec不能作为类型使用,除非提供模板参数来实例化它。如果我有多个func-s,但它们将用作我在第一个开始时设置的某个Vec的相同类型。每次调用每个函数时都必须键入类型“``func1”,这不会有点麻烦吗?@abc您的问题没有意义,请提供一个您试图解决的问题。Re:如果我使用旧模板函数,它将是,不,这不是必需的。您是否尝试过创建模板函数?你知道C++有吗?
a = Vec<double>;
fun1<double>(a);
fun2<double>(a);
...
funN<double>(a);
template<typename T>
void func(Vec<T>& a) {
// ...
}
Vec<int> a{};
func(a);
Vec<double> b{};
func(b);