#include #include struct tuple_tree : std::tr1::tuple < float #if 1 , std::vector #else , tuple_tree #endif > { }; int main(void) { tuple_tree tt; #if 1 std::vector&children=std::tr1::get<1>(tt); children.push_back(tuple_tree()); #endif return std::tr1::get<0>(std::tr1::get<1>(tt)[0]); }