[Bug libstdc++/78905] New: Add a macro to determine that the <regex> library is implemented
mattyclarkson at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Dec 22 17:39:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78905
Bug ID: 78905
Summary: Add a macro to determine that the <regex> library is
implemented
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: mattyclarkson at gmail dot com
Target Milestone: ---
libstdc++ 4.7 and 4.8 shipped with a incomplete <regex> implementation.
Detecting this is a bit of a pain. I did my best to attempt a detection snippet
with:
#include <regex>
#if __cplusplus >= 201103L && \
(!defined(__GLIBCXX__) || (__cplusplus >= 201402L) || \
(defined(_GLIBCXX_REGEX_DFS_QUANTIFIERS_LIMIT) || \
defined(_GLIBCXX_REGEX_STATE_LIMIT)))
#define HAVE_WORKING_REGEX 1
#else
#define HAVE_WORKING_REGEX 0
#endif
This uses internal macros that are not guaranteed to exist. Would it be
possible to include a _GLIBCXX_REGEX_IMPLEMENTED (or similar) that would be
supported in future versions of the library so that the snippet can be updated
so that it doesn't break for future versions of the library?
I wrote a more lengthy description of the solution on stackoverflow:
http://stackoverflow.com/a/41186162/192993
More information about the Gcc-bugs
mailing list