#include <iostream>
#include <variant>
#include <vector>
#include <string>
using namespace std;
class Data
{
public:
Data() {}
virtual ~Data() {}
};
template <typename T>
class AnyData : public Data
{
public:
AnyData(T v) : m_data(v)
{
}
virtual ~AnyData()
{
}
operator T() const
{
try
{
T v = std::get<T>(m_data);
// cout << "get data===" << v << endl;
return v;
}
catch (const std::exception &e)
{
std::cerr << e.what() << '\n';
}
}
private:
typedef std::variant<int8_t, int16_t, int32_t, int64_t, float, double, bool, std::string> data_type;
data_type m_data;
};
class Vector
{
public:
Vector() {}
virtual ~Vector()
{
auto it = m_vec.begin();
for (; it != m
cpp 可变参数模板传递任意类型参数实现
最新推荐文章于 2024-07-31 12:23:53 发布
该博客介绍了如何在C++中利用可变参数模板来实现传递任意类型参数的功能。内容涉及到C++17标准,特别提到了std::variant的使用,并指出编译时需要指定--std=c++17选项。
摘要由CSDN通过智能技术生成