2017-04-09 1 views
1

Dieser Code kompiliert und ausgeführt (Parsing backtrace_symbols)Warum funktioniert dieser Code in Visual Studio, schlägt aber in gcc fehl?

In gcc I "regex_error" Ausnahme auf Abruf erhalten regex_match während in VS2017 funktioniert es nicht?!?

const std::regex r(R"(\((\w*)\+\w*\)\s+\[(\w+)\])"); 
std::smatch m; 
const bool bMatch = std::regex_match(curStr,m,r); 

Kann jemand erklären?

+0

GCC (stdlibC++) und hat nie wirklich gut funktioniert, welche Version benutzt du? – DeiDei

+0

@DeiDei, nie? Es ist seit einiger Zeit implementiert und funktioniert auf Trunk (https://wandbox.org/permlink/qyPSFvU8L2NCKE0z). – chris

+0

@chris Schlechte Wortwahl meinerseits. Ich meinte, es gab zahlreiche Fragen zu SO darüber. Deshalb habe ich nach der Version gefragt, die das OP benutzt. – DeiDei

Antwort

1

Ich denke, dies ist ein Bug bis zur Version 4.8.5

You can see it here

ich sogar einige Fehler bis zur Version 5.3.0
So fand ich vorschlagen, dass Sie zumindest Verwendung Version 5.4.0 oder oberen mit gcc

See a bug in version 5.3.0

Verwandte Themen