Reverted regex to boost::regex as the C++11 regex seems to be broken

on Linux/gcc 4.9.
This commit is contained in:
bubnikv 2017-12-20 21:54:47 +01:00
parent 8acd51fc62
commit fed5128b7f

View File

@ -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())));