将参数包转发到向量中

时间:2019-06-20 16:07:35

标签: c++ stdvector perfect-forwarding

我正在尝试使用转发将打包的参数列表转发到MSVC 19上的std :: vector中。因此,这给了我很多错误。

 long CallFunc( size_t arg1, unsigned long long *args_ptr, size_t args_num ) {
     // code
 }

 template< typename... Args > long ForwardingCall( size_t arg1, Args&& ...args_list ) {
    std::vector< unsigned long long > arguments = { std::forward< Args >( args_list )... };
    return CallFunc( arg1, arguments.data(), sizeof...( args_list ) );
 }

错误消息:

Error   C2440    'initializing': cannot convert from 'initializer list' to 'std::vector<unsigned __int64,std::allocator<_Ty>>'

这样称呼它:

auto ret = ForwardingCall( ( size_t ) arg1, ( int ) arg2, ( int ) arg3, ( int ) arg4 );

0 个答案:

没有答案