【发布时间】:2018-03-29 09:06:17
【问题描述】:
谁能解释一下下面的声明是什么意思?
template<typename... T> void f2(std::vector<T*>...);
这是否意味着 f2 接受多个具有不同指针类型的std::vectors?
【问题讨论】:
标签: c++ c++11 templates parameters
谁能解释一下下面的声明是什么意思?
template<typename... T> void f2(std::vector<T*>...);
这是否意味着 f2 接受多个具有不同指针类型的std::vectors?
【问题讨论】:
标签: c++ c++11 templates parameters
这是否意味着 f2 接受多个具有不同指针类型的 std::vector?
是的!
template<typename... T> void f2(std::vector<T*>...) {}
int main()
{
std::vector<int*> vi;
std::vector<double*> vd;
f2( vi, vd );
}
提示: 如果运行 gcc,您可以使用:
template<typename... T> void f2(std::vector<T*>...)
{
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
将输出:
void f2(std::vector<T*>...) [with T = {int, double}]
【讨论】: