@brief access specified array element with bounds checking @sa https://json.nlohmann.me/api/basic_json/at/
| 21238 | /// @brief access specified array element with bounds checking |
| 21239 | /// @sa https://json.nlohmann.me/api/basic_json/at/ |
| 21240 | reference at(size_type idx) |
| 21241 | { |
| 21242 | // at only works for arrays |
| 21243 | if (JSON_HEDLEY_LIKELY(is_array())) |
| 21244 | { |
| 21245 | JSON_TRY |
| 21246 | { |
| 21247 | return set_parent(m_data.m_value.array->at(idx)); |
| 21248 | } |
| 21249 | JSON_CATCH (std::out_of_range&) |
| 21250 | { |
| 21251 | // create better exception explanation |
| 21252 | JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); |
| 21253 | } |
| 21254 | } |
| 21255 | else |
| 21256 | { |
| 21257 | JSON_THROW(type_error::create(304, detail::concat("cannot use at() with ", type_name()), this)); |