如何将可变参数模板成员函数的参数存储到向量中?

xxX360noscopePROXX
#include <Windows.h>
#include <string>
#include <vector>
#include <iostream>
using namespace std;

class CTest
{
public:
    template<typename... Args>
    void AddStringsToVector(const std::string &First, Args&... args);
private:
    std::vector<std::string> m_stringsvec;
};

template<typename... Args>
void CTest::AddStringsToVector(const std::string &First, Args&... args)
{
    m_stringsvec.push_back(First);
    m_stringsvec.push_back(args...);

    for (auto &i : m_stringsvec)
        std::cout << i << std::endl;
}

void main()
{
    CTest test;
    test.AddStringsToVector("test1","test2","test3");
    system("pause");
}

仅在我传递两个参数时有效:

test.AddStringsToVector("test1","test2");

如果我传递了其他任意数量的参数,那么我会得到两个错误。

例如:

test.AddStringsToVector("test1","test2","test3");

错误:严重级代码描述项目文件行错误C2661'std :: vector> :: push_back':没有重载函数使用2个参数

萨钦·戈亚尔

递归调用该函数。

void CTest::AddStringsToVector()//function to break recursion 
{

}
template<typename... Args>
void CTest::AddStringsToVector(const std::string &First, Args&... args)
{
    m_stringsvec.push_back(First);
    AddStringsToVector(args...);


}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SWIG中包装可变参数模板类的可变参数模板成员函数?

如何将可变参数模板函数* instance *声明为朋友

将可变参数模板参数传递给可变函数

如何将向量元素作为参数传递给可变参数模板函数?

std :: function到可变参数成员函数,然后绑定可变参数模板参数

如何存储可变参数模板参数?

在我的可变参数模板中获取UB,将可变数量的向量逐元素求和

将可变参数模板包装为元组向量

如何在C ++中存储可变参数模板参数?

可变参数模板类-可变参数成员函数

如何访问可变参数模板函数中的参数

以成员函数指针为参数的可变参数模板

完美转发可变参数模板参数到成员函数

如何重载可变参数模板函数?

如何传递可变参数模板函数?

可变参数模板中的函数顺序

根据函数签名将可变参数模板中的类型转发为值/引用

使用成员函数调用可变参数模板函数

如何将可变参数模板参数转换为另一种类型以调用另一个函数?

如何将向量(或类似向量)传递给可变参数模板

如何将可变参数模板转换为多个单个模板?(C ++竞争编程调试模板)

专业化可变参数模板成员函数

std::invoke 不喜欢可变参数模板成员函数?

可变参数模板成员函数的部分专业化

具有可变参数模板的成员函数指针

N维向量的递归可变参数模板函数

如何仅将可变参数模板与模板模板参数匹配?

可变参数模板-如何创建类型,存储传递的参数

在不使用boost :: any的情况下将参数存储在可变参数模板函数中