diff --git a/src/ucioption.cpp b/src/ucioption.cpp index eefb4aa8124..b42e455bbcd 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -55,12 +55,15 @@ void OptionsMap::setoption(std::istringstream& is) { sync_cout << "No such option: " << name << sync_endl; } -Option OptionsMap::operator[](const std::string& name) const { - auto it = options_map.find(name); - return it != options_map.end() ? it->second : Option(); +const Option& OptionsMap::operator[](const std::string& name) const { + // throws std::out_of_range if the option does not exist + return options_map.at(name); } -Option& OptionsMap::operator[](const std::string& name) { return options_map[name]; } +Option& OptionsMap::operator[](const std::string& name) { + // throws std::out_of_range if the option does not exist + return options_map.at(name); +} std::size_t OptionsMap::count(const std::string& name) const { return options_map.count(name); } diff --git a/src/ucioption.h b/src/ucioption.h index b7b4bdec48d..a91a4827a2f 100644 --- a/src/ucioption.h +++ b/src/ucioption.h @@ -39,8 +39,8 @@ class OptionsMap { friend std::ostream& operator<<(std::ostream&, const OptionsMap&); - Option operator[](const std::string&) const; - Option& operator[](const std::string&); + const Option& operator[](const std::string&) const; + Option& operator[](const std::string&); std::size_t count(const std::string&) const;