On 29/04/19 18:16 +0200, Georg Sauthoff wrote:
On Mon, Apr 29, 2019 at 05:11:53PM +0200, Dan Čermák wrote:
> John Reiser <jreiser(a)bitwagon.com> writes:
[..]
> > What is the nature of the incompatibilities, and what are specific
> > examples?
>
> We switched to from the POSIX regex library to <regex> as it should be
> provided by a C++11 compatible compiler. Unfortunately gcc 4.8.5 does
> not properly implement <regex> and it made a lot of tests fail. We have
> therefore switched to using the SCL gcc & clang compiler for now.
Yes, at least GCC 4.8/4.9 (with the then current libstdc++)
featured a severely broken <regex> (e.g. also on Fedora 19).
GCC 4.8 does, but the std::regex in 4.9 is OK.
https://stackoverflow.com/questions/12530406/is-gcc-4-8-or-earlier-buggy-...
If it's just <regex> an alternative is to fallback to Boost
regex
- e.g. like this:
#ifdef SOME_MACRO_THAT_SIGNALS_PROPER_REGEX_AVAILABILITY
https://stackoverflow.com/a/41186162/981959 shows a working version of
that macro.
#include <regex>
namespace re = std;
#else
#include <boost/regex.hpp>
namespace re = boost;
#endif
And then use re::regex re::regex_match etc. in your code.
Yes, this is a reasonable workaround.