繁体   English   中英

离线可变参数模板功能

[英]Out-of-line variadic template function

我需要将声明与可变参数模板函数的定义分开:

struct A
{
    // In-line declaration of function
    template<typename...Args>
    A(Args&&...args);
};

// Out-of-line definition of function
template<typename...Args>
A<Args...>::A(Args&&...args)
{}

int main()
{
    A a("hello");
    return 0;
}

...这是我收到的错误(Clang 3.9 OS X 10):

main.cpp:8:2: error: expected unqualified-id
A<Args...>::A(Args&&...args)
 ^

我是否需要将“类型名称”放在某处? 预先感谢您的帮助!

你写了:

template<typename...Args>
A<Args...>::A(Args&&...args)
{}

但是您的课程不是课程模板 ,因此下面是您的操作方法

template<typename...Args>
A::A(Args&&...args)
{}


即使它是一个class-template ,下面的示例也是您如何处理class-template的模板化构造函数

template<typename... T>
struct A
{
    // In-line declaration of function
    template<typename...Args>
    A(Args&&...args);
};

// Out-of-line definition of function
template<typename... T>
template<typename... Args>
A<T...>::A(Args&&...args)
{}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM