以下代码无法编译。如何修改get_numbers_from_line_variadic
中的args
变量
非变量版本get_numbers_from_line
说明了变量版本应该实现什么,然而,变量版本的参数可能具有不同的类型。
#include <iostream>
#include <sstream>
#include <string>
template<typename... ArgTypes>
void get_numbers_from_line_variadic(std::string line, ArgTypes&... args)
{
std::istringstream iss(line);
for (auto& arg : {args...})
iss >> arg;
}
void get_numbers_from_line(std::string line, int& a, int& b)
{
std::istringstream iss(line);
iss >> a;
iss >> b;
}
int main()
{
int a, b;
get_numbers_from_line("1 2", a, b);
get_numbers_from_line_variadic("1 2", a, b);
std::cout << "a = " << a << std::endl;
std::cout << "b = " << b << std::endl;
}
https://stackoverflow.com/questions/50689825
复制相似问题