int mainy() { boost::tuple<int, double, long, std::string> t1(1, 2.0, 3L, "s"); boost::tuple<int, float, short> t2(11, 12.0, 13); cartesian_product( t1, t2, func()); return 0; }
Graph<int,int> hypercube(std::vector<int> args,int start=1) { if(args[0]<1) throw std::runtime_error("Not possible : (n>0) not met ..."); int n=args[0], x=start, y=1; Graph<int,int> result = path({2},x); while(pow(2,y)<=pow(2,n-1)) { y++; x=x+2; auto g = path({2},x); result=cartesian_product(result,g); } return result; }