相关疑难解决方法(0)

一种特定类型的变量模板参数

为什么可变参数模板包中不允许特定类型?

template< typename T >
class Foo
{
public:
    template< typename... Values >
    void bar( Values... values )
    {
    }

    template< T... values >            <-- syntax error
    void bar( T... values )
    {
    }

    template< int... values >          <-- syntax error
    void bar( int... values )
    {
    }
};
Run Code Online (Sandbox Code Playgroud)

什么在的理由使这个?
是否有这方面的建议?


注意:替代方案是

  • std::initializer_list< T >没有缩小类型和{ }-brace语法
  • (丑陋的)递归特征,单独检查所有类型:见这里

c++ templates language-lawyer variadic-templates c++11

7
推荐指数
1
解决办法
2073
查看次数