diff options
author | bubnikv <bubnikv@gmail.com> | 2017-12-20 23:54:47 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2017-12-20 23:54:47 +0300 |
commit | fed5128b7f55e947b3bb38905283dfba81da06a2 (patch) | |
tree | 43fd71595e96f4b9d2cc0a19d13ad86e60b3a93b /xs | |
parent | 8acd51fc6246cc12523521e3b621db43a0dcbbd2 (diff) |
Reverted regex to boost::regex as the C++11 regex seems to be broken
on Linux/gcc 4.9.
Diffstat (limited to 'xs')
-rw-r--r-- | xs/src/libslic3r/PlaceholderParser.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/xs/src/libslic3r/PlaceholderParser.cpp b/xs/src/libslic3r/PlaceholderParser.cpp index 58ee09eea..bcd011da2 100644 --- a/xs/src/libslic3r/PlaceholderParser.cpp +++ b/xs/src/libslic3r/PlaceholderParser.cpp @@ -2,7 +2,6 @@ #include <cstring> #include <ctime> #include <iomanip> -#include <regex> #include <sstream> #ifdef _MSC_VER #include <stdlib.h> // provides **_environ @@ -51,6 +50,15 @@ #include <iostream> #include <string> +// #define USE_CPP11_REGEX +#ifdef USE_CPP11_REGEX + #include <regex> + #define SLIC3R_REGEX_NAMESPACE std +#else /* USE_CPP11_REGEX */ + #include <boost/regex.hpp> + #define SLIC3R_REGEX_NAMESPACE boost +#endif /* USE_CPP11_REGEX */ + namespace Slic3r { PlaceholderParser::PlaceholderParser() @@ -424,13 +432,13 @@ namespace client } try { std::string pattern(++ rhs.begin(), -- rhs.end()); - bool result = std::regex_match(*subject, std::regex(pattern)); + bool result = SLIC3R_REGEX_NAMESPACE::regex_match(*subject, SLIC3R_REGEX_NAMESPACE::regex(pattern)); if (op == '!') result = ! result; lhs.reset(); lhs.type = TYPE_BOOL; lhs.data.b = result; - } catch (std::regex_error &ex) { + } catch (SLIC3R_REGEX_NAMESPACE::regex_error &ex) { // Syntax error in the regular expression boost::throw_exception(qi::expectation_failure<Iterator>( rhs.begin(), rhs.end(), spirit::info(std::string("*Regular expression compilation failed: ") + ex.what()))); |