Skip to content

libpisp: Switch to C++20 standard#66

Merged
naushir merged 1 commit intomainfrom
cpp20
Mar 31, 2026
Merged

libpisp: Switch to C++20 standard#66
naushir merged 1 commit intomainfrom
cpp20

Conversation

@naushir
Copy link
Copy Markdown
Collaborator

@naushir naushir commented Mar 31, 2026

Switch the default build to use C++ 20 standard. There is a compile failure regarding and "ambiguous operator", fix this:

In file included from /usr/include/boost/assert.hpp:64,
from /usr/include/boost/log/detail/attachable_sstream_buf.hpp:24,
from /usr/include/boost/log/utility/formatting_ostream.hpp:33,
from /usr/include/boost/log/sources/record_ostream.hpp:36,
from /usr/include/boost/log/trivial.hpp:24,
from ../subprojects/libpisp/src/libpisp/common/logging.hpp:17,
from ../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:9:
../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp: In member function ‘virtual void tiling::InputStage::PushCropDown(tiling::Interval, tiling::Dir)’: ../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:95:33: warning: C++20 says that these are ambiguous, even though the second is reversed:
95 | PISP_ASSERT(interval == input_interval_);
| ^~~~~~~~~~~~~~~
../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:95:9: note: in expansion of macro ‘PISP_ASSERT’
95 | PISP_ASSERT(interval == input_interval_);
| ^~~~~~~~~~~
In file included from ../subprojects/libpisp/src/libpisp/backend/tiling/stages.hpp:11,
from ../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.hpp:9,
from ../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:7:
../subprojects/libpisp/src/libpisp/backend/tiling/types.hpp:64:14: note: candidate 1: ‘bool tiling::Interval::operator==(const tiling::Interval&)’
64 | bool operator==(Interval const &other) { return offset == other.offset && length == other.length; }
| ^~~~~~~~
../subprojects/libpisp/src/libpisp/backend/tiling/types.hpp:64:14: note: candidate 2: ‘bool tiling::Interval::operator==(const tiling::Interval&)’ (reversed)
../subprojects/libpisp/src/libpisp/backend/tiling/types.hpp:64:14: note: try making the operator a ‘const’ member function

Switch the default build to use C++ 20 standard. There is a compile
failure regarding and "ambiguous operator", fix this:

In file included from /usr/include/boost/assert.hpp:64,
                 from /usr/include/boost/log/detail/attachable_sstream_buf.hpp:24,
                 from /usr/include/boost/log/utility/formatting_ostream.hpp:33,
                 from /usr/include/boost/log/sources/record_ostream.hpp:36,
                 from /usr/include/boost/log/trivial.hpp:24,
                 from ../subprojects/libpisp/src/libpisp/common/logging.hpp:17,
                 from ../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:9:
../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp: In member function ‘virtual void tiling::InputStage::PushCropDown(tiling::Interval, tiling::Dir)’:
../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:95:33: warning: C++20 says that these are ambiguous, even though the second is reversed:
   95 |         PISP_ASSERT(interval == input_interval_);
      |                                 ^~~~~~~~~~~~~~~
../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:95:9: note: in expansion of macro ‘PISP_ASSERT’
   95 |         PISP_ASSERT(interval == input_interval_);
      |         ^~~~~~~~~~~
In file included from ../subprojects/libpisp/src/libpisp/backend/tiling/stages.hpp:11,
                 from ../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.hpp:9,
                 from ../subprojects/libpisp/src/libpisp/backend/tiling/input_stage.cpp:7:
../subprojects/libpisp/src/libpisp/backend/tiling/types.hpp:64:14: note: candidate 1: ‘bool tiling::Interval::operator==(const tiling::Interval&)’
   64 |         bool operator==(Interval const &other) { return offset == other.offset && length == other.length; }
      |              ^~~~~~~~
../subprojects/libpisp/src/libpisp/backend/tiling/types.hpp:64:14: note: candidate 2: ‘bool tiling::Interval::operator==(const tiling::Interval&)’ (reversed)
../subprojects/libpisp/src/libpisp/backend/tiling/types.hpp:64:14: note: try making the operator a ‘const’ member function

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
@naushir naushir merged commit c585ab0 into main Mar 31, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant