I'm working on a project quite particular since I can't use all C++11 features. In particular, I have variadics
template but no tuple
.
What I'm struggling to do is to create a templated class which can store meta-data, ie a set of data. I don't know in advance what type is used, and how many of them there will be.
Basically, that's what I want to do
#include<tuple>
template<typename... Data>
class Base{
private:
std::tuple<Data...> mydata;
public:
Base{Data... data):
mydata(data...){}
void set_data(Data... data){
mydata = std::tie(data...)
}
This example is working...but relied on tuple
. I know that I can do something similar without tuple
, using ArgumentPack
. However, I'm not familiar with that.
So far, I thought about using struct
to store my data, since it's the only other way I know to store different types. So I should look like this :
template<typename typename<...> class ArgumentPack, typename... Data>
class Base{
private:
struct mydata{
//Something here
};
public:
Base(Data... data){
//assign data into mydata struct
}
void set_data(Data... data){
//???
}
mydata get_data(){
//???
}