This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/78905] New: Add a macro to determine that the <regex> library is implemented
- From: "mattyclarkson at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 22 Dec 2016 17:39:25 +0000
- Subject: [Bug libstdc++/78905] New: Add a macro to determine that the <regex> library is implemented
- Auto-submitted: auto-generated
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