diff --git a/src/Val.h b/src/Val.h index 9b402b0d2d..bfbca2b6a6 100644 --- a/src/Val.h +++ b/src/Val.h @@ -1301,33 +1301,33 @@ public: if constexpr ( std::is_same_v || std::is_same_v || std::is_same_v ) - return record_val->at(field).int_val; + return record_val->operator[](field).int_val; else if constexpr ( std::is_same_v ) - return record_val->at(field).uint_val; + return record_val->operator[](field).uint_val; else if constexpr ( std::is_same_v || std::is_same_v || std::is_same_v ) - return record_val->at(field).double_val; + return record_val->operator[](field).double_val; else if constexpr ( std::is_same_v ) return val_mgr->Port(record_val->at(field).uint_val); else if constexpr ( std::is_same_v ) - return record_val->at(field).string_val->Get(); + return record_val->operator[](field).string_val->Get(); else if constexpr ( std::is_same_v ) - return record_val->at(field).addr_val->Get(); + return record_val->operator[](field).addr_val->Get(); else if constexpr ( std::is_same_v ) - return record_val->at(field).subnet_val->Get(); + return record_val->operator[](field).subnet_val->Get(); else if constexpr ( std::is_same_v ) - return *(record_val->at(field).file_val); + return *(record_val->operator[](field).file_val); else if constexpr ( std::is_same_v ) - return *(record_val->at(field).func_val); + return *(record_val->operator[](field).func_val); else if constexpr ( std::is_same_v ) - return record_val->at(field).re_val->Get(); + return record_val->operator[](field).re_val->Get(); else if constexpr ( std::is_same_v ) - return record_val->at(field).record_val; + return record_val->operator[](field).record_val; else if constexpr ( std::is_same_v ) - return record_val->at(field).vector_val; + return record_val->operator[](field).vector_val; else if constexpr ( std::is_same_v ) - return record_val->at(field).table_val->Get(); + return record_val->operator[](field).table_val->Get(); else { // It's an error to reach here, although because of @@ -1342,12 +1342,12 @@ public: T GetFieldAs(int field) const { if constexpr ( std::is_integral_v && std::is_signed_v ) - return record_val->at(field).int_val; + return record_val->operator[](field).int_val; else if constexpr ( std::is_integral_v && std::is_unsigned_v ) - return record_val->at(field).uint_val; + return record_val->operator[](field).uint_val; else if constexpr ( std::is_floating_point_v ) - return record_val->at(field).double_val; + return record_val->operator[](field).double_val; // Note: we could add other types here using type traits, // such as is_same_v, etc.