30 if (p && p->name() ==
name)
return p.get();
54 }
catch (std::out_of_range& e) {
55 throw std::out_of_range(std::format(
"IdDictField::get_label : Attempt to access index {} in vector of size {}",
63 if (std::ranges::find_if(
name,[](
const char c){
return !std::isdigit(c); }) !=
name.end()) {
74 value = std::stoi(
name);
76 }
catch (
const std::invalid_argument& e) {
77 std::cerr <<
"Warning : label " <<
name <<
" not found: "<<e.what() << std::endl;
size_t get_label_number() const
const std::string & get_label(size_t index) const
const IdDictLabel & label(size_t index) const
void set_index(size_t index)
IdDictField & operator=(IdDictField &&)
ExpandedIdentifier::element_type get_label_value(const std::string &name) const
const std::string & name() const
std::vector< std::unique_ptr< const IdDictLabel > > m_labels
IdDictField(const std::string &name)
const IdDictLabel * find_label(const std::string &name) const
void add_label(std::unique_ptr< const IdDictLabel > label)