C++ 可变结构规范

C++ 可变结构规范,c++,variadic-templates,C++,Variadic Templates,我这样定义一个可变结构 template <class T, class... TRest> struct Opa { Opa() { std::cout << "Mutiple-arguments template"; } }; 导致编译错误。 我意识到我的问题很简单,但谷歌搜索没有帮助。 所以请不要向我扔烂番茄,谢谢你的回答。你的单参数专门化语法是错误的。您可能正在为现场声明的T类专门开发它。你想要这个: template &

我这样定义一个可变结构

template <class T, class... TRest>
struct Opa
{
    Opa()
    {
        std::cout << "Mutiple-arguments template";
    }
};
导致编译错误。 我意识到我的问题很简单,但谷歌搜索没有帮助。
所以请不要向我扔烂番茄,谢谢你的回答。

你的单参数专门化语法是错误的。您可能正在为现场声明的
T类
专门开发它。你想要这个:

template <class T>
struct Opa<T>
{
    Opa()
    {
        std::cout << "One-argument template";
    }
};
模板
结构Opa
{
Opa()
{

你的可变模板在哪里?
Opa<int> opa;
Opa<int, int> opa_opa;
template <class T>
struct Opa
{...}
template <class T>
struct Opa<T>
{
    Opa()
    {
        std::cout << "One-argument template";
    }
};