参数包扩展未在 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));
    }
};