void
ProgramOptions::findMissingOptions(const OptionGroup& group, SetString& missing) const
{
	 
	for (OptionMap::const_iterator it = group.getOptions().begin(); 
		it != group.getOptions().end();
		++it)
	{
		if (it->second.isMandatory() && !isOptionDefined (it->first)){
			missing.insert(it->second.getName());
		}
	}

	for (OptionGroupMap::const_iterator git = group.getGroups().begin();
		git != group.getGroups().end();
		++git)
	{
		findMissingOptions(git->second, missing);
	}
}