Skip to content

Instantly share code, notes, and snippets.

@nurettin
Created January 4, 2014 12:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nurettin/8254816 to your computer and use it in GitHub Desktop.
Save nurettin/8254816 to your computer and use it in GitHub Desktop.
who wants types?
#include <iostream>
#include <map>
#include <string>
#include <boost/variant.hpp>
typedef boost::variant<std::string, double, int> Data;
struct Graph: std::map<Data, Graph>
{
Data data;
template <typename T>
Graph &operator= (T const &t)
{
data= t;
return *this;
}
template <typename T>
operator T &(){ return boost::get<T>(data); }
std::string to_yaml() const
{
return "";
}
};
int main()
{
Graph omg;
omg["lol"][0]["name"]= "pwned";
omg["lol"][0]["age"]= 42;
omg["lol"][1]["name"]= "noob";
omg["lol"][1]["age"]= 21;
std::cout<< omg.to_yaml()<< '\n';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment