参数包扩展未在 C++ 中编译
Parameter pack expansion not compiling in c++
在 C++ 中,当我尝试扩展参数包时,出现错误
"parameter packs not expanded with '...'" and
"error: expected ';' before '...' token"
非常感谢您的帮助。我用的是mingw 8.2.0.
代码:
#include <iostream>
using namespace std;
template <class... Types>
class Test {
Test(Types... args) {
cout << args... << endl;
}
};
int main() {
Test<string, int> test("this is a test", 3);
}
您的方式使 std::cout.operator<< (oneoperand)
成为 std::cout.operator<<( operand1, operand2, ...)
。你应该使用类似下面的东西
template <class... Types>
struct Test {
Test(const Types &... args) {
((std::cout << args), ..., (std::cout << endl));
}
};
在 C++ 中,当我尝试扩展参数包时,出现错误
"parameter packs not expanded with '...'" and "error: expected ';' before '...' token"
非常感谢您的帮助。我用的是mingw 8.2.0.
代码:
#include <iostream>
using namespace std;
template <class... Types>
class Test {
Test(Types... args) {
cout << args... << endl;
}
};
int main() {
Test<string, int> test("this is a test", 3);
}
您的方式使 std::cout.operator<< (oneoperand)
成为 std::cout.operator<<( operand1, operand2, ...)
。你应该使用类似下面的东西
template <class... Types>
struct Test {
Test(const Types &... args) {
((std::cout << args), ..., (std::cout << endl));
}
};