在函数头中使用remove_reference

时间:2018-07-31 19:19:13

标签: c++ c++11

说我有以下内容:

template <typename... A>
class MyClass
{
public:

    void func(A... args)
    {
        // do stuff
    }
};

我真正想要的是func()接受l值引用,所以像这样:

template <typename... A>
class MyClass
{
public:

    void func(std::remove_reference<A>::type&... args)
    {
        // do stuff
    }
};

这不会编译;这种事情有可能吗?谢谢。

1 个答案:

答案 0 :(得分:1)

代码应阅读

template <typename... A>
class MyClass
{
public:

    void func(typename std::remove_reference<A>::type&... args)
    {
        // do stuff
    }
};