From: Jérémie Galarneau Date: Tue, 12 Mar 2024 19:48:09 +0000 (-0400) Subject: Build fix: missing operator- for iterator on g++7 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=d83ba9baef029eedf530d272d95487e9c59d4226 Build fix: missing operator- for iterator on g++7 The project fails to build on 'g++ (SUSE Linux) 7.5.0' since its STL implementation assumes that operator- is available for random access iterators. The build fails with the following error: event_name.cpp:82:71: required from here /usr/include/c++/7/bits/stl_iterator_base_funcs.h:104:21: error: no match for ‘operator-’ (operand types are ‘lttng::utils::random_access_container_wrapper::_iterator, const char* const>’ and ‘lttng::utils::random_access_container_wrapper::_iterator, const char* const>’) A trivial implementation of that operator is provided and allows the build to succeed. Signed-off-by: Jérémie Galarneau Change-Id: Ib1637e81e5cdc42cd5a142dcee21150ced9fcc55 --- diff --git a/src/common/container-wrapper.hpp b/src/common/container-wrapper.hpp index 20642a8d2..25385fc43 100644 --- a/src/common/container-wrapper.hpp +++ b/src/common/container-wrapper.hpp @@ -60,6 +60,11 @@ class random_access_container_wrapper { return *this; } + ptrdiff_t operator-(const _iterator& other) const + { + return _index - other._index; + } + bool operator==(const _iterator& other) const noexcept { return _index == other._index;