I am wondering if it is possible to have a template alias as a function input type, and the 'further' type can be further determined based on the input?
template<typename T> using Vec = std::vector<T>;
I want to define a function:
void func(Vec& a){ for(auto &each :a){ //Do something } }
Where the type of Vec
can be derived based on the input a
.
In such an example, the same func
can be applied to all a
as std::vector<ANY TYPE>
.
I have such an issue because I have a vec
initialized at the first beginning and run a series of functions.
a = Vec<int>; fun1(a); fun2(a); ... funN(a);
I want to have the same operations but with different types.
a = Vec<double>; fun1(a); fun2(a); ... funN(a);
If I follow the old templated function it will be
a = Vec<int>; fun1<int>(a); fun2<int>(a); ... funN<int>(a);
and to change to double
I have to do
a = Vec<double>; fun1<double>(a); fun2<double>(a); ... funN<double>(a);
Basically, I have to change int
to double
for each function. I am looking forward some easier ways to do so.
没有评论:
发表评论