[Live-devel] C++20 dependency taken in 2023.06.16 or .20
Warren Young
warren at etr-usa.com
Wed Oct 9 18:42:59 PDT 2024
On attempting to update an existing code base that builds under C++17, we’re now getting this build error:
live555/BasicUsageEnvironment/BasicTaskScheduler.cpp: In member function ‘virtual void BasicTaskScheduler::SingleStep(unsigned int)’:
live555/BasicUsageEnvironment/BasicTaskScheduler.cpp:191:40: error: ‘struct std::atomic_flag’ has no member named ‘test’
191 | if (fTriggersAwaitingHandling[i].test()) {
| ^~~~
make[1]: *** [Makefile:4441: live555/BasicUsageEnvironment/lib_liblivemedia_la-BasicTaskScheduler.lo] Error 1
This is because std::atomic_flag.test() does not exist before C++20, per https://en.cppreference.com/w/cpp/atomic/atomic_flag
Changing our -std=gnu++17 flag to -std=gnu++20 does bypass the error, but it means the rest of our code base also has to now build under that version, a change we were avoiding taking on because $REASONS.
Was this change in minimum C++ version intentional?
More information about the live-devel
mailing list