Conf& Conf::def_choice(std::string name, std::vector<std::string> choices, std::string default_value) { assert2(in_vector(choices, default_value), MS() << default_value << " is not an option for " << name); assert2(choices.size() >= 2, MS() << "At least two choices are needed for " << name); auto c = make_shared<Choice>(); c->choices = choices; c->default_value = default_value; c->value = default_value; items[name] = c; return *this; }