[Bug] Incompatibility with Boost::ut version, C++20 being used when only C++17 should be used

Feature Request

Summary

Discovered after @borodooovitsyn shared his issues with project configuration. Working with @MatthewL55555

Had seen that ut was compatible with C++17 prior, but wasn't exactly sure which versions/what broke. Things seemed fine when we compiled and we seemingly had our CMake project setup to use C++17. But it turns out that CMake was not configured correctly, and still allowed libraries to be compiled using newer C++ standards.

The main incompatibility is the unit testing library, boost::ut. From discussion with @jonathan.keith.ung , we are coming to the conclusion that we should upgrade to the C++20 standard.

Acceptance Criteria

  • Project can build without C++ standard errors

Design / Technical Approach

Found that Boost::ut v1.1.4 potentially works with C++17.

  • Relevant changes to make our project compatible with C++17 can be found in 584-bug-fix-incompatible-cpp-standards

Upgrading to C++20 fixed the Boost::ut issues, but we needed to fix some other parts of our codebase to integrate with the change.

  • Relevant changes to make our project compatible with C++20 can be found in 584-bug-fix-upgrade-cpp20

Dependencies

Testing Plan

  • Write unit tests for feat
Edited by David Pham