ribi::Help::Help( const std::string& program_name, const std::string& program_description, const std::vector<Option>& options, const std::vector<std::string> example_uses) : m_example_uses(example_uses), m_options(AddDefaultOptions(options)), m_program_description(program_description), m_program_name(program_name) { #ifndef NDEBUG //checks if there are no short or long option occurring twice const std::size_t sz = m_options.size(); for (std::size_t i=0; i!=sz-1; ++i) { const Option& a { m_options[i] }; for (std::size_t j=i+1; j!=sz; ++j) { assert(j < m_options.size()); const Option& b { m_options[j] }; if (a.m_short == b.m_short || a.m_long == b.m_long) { TRACE(a.m_short); TRACE(a.m_long); TRACE(a.m_description); TRACE(b.m_short); TRACE(b.m_long); TRACE(b.m_description); } assert(a.m_short != b.m_short && "Every short option must be unique"); assert(a.m_long != b.m_long && "Every long option must be unique"); } } #endif }
void EssExporter::AddDefaultOption() { AddDefaultOptions(mWriter, mOptionName); }