No hay coincidencias con c ++ 11 regex

¿Por qué esto no encuentra coincidencias en g ++ (Debian 4.6.3-1) 4.6.3 o clang versión 3.2 (tronco 159457)

#include  #include  #include  using namespace std; int main() { string line("test"); regex pattern("test",regex_constants::grep); smatch result; bool ret(false); ret = regex_search(line,result,pattern); cout << boolalpha << ret << endl; cout << result.size() << endl; return 0 ; } 

salida

 false 0 

Porque aún no está implementado en libstdc ++, como se documenta aquí (§28).

Por ahora, use Boost.Xpressive o Boost.Regex en su lugar.

Por ahora su ejemplo se ejecuta correctamente:

 $ ~/src/gcc/inst/bin/g++ --version g++ (GCC) 4.9.0 20140224 (experimental) 

en

 $ uname -a Linux ... x86_64 x86_64 x86_64 GNU/Linux 

ejecuta

 $ ./83-regex.x true 1 

De acuerdo con este cambio, el registro se admite en gcc-4.9 con libstd ++ – v3

http://gcc.gnu.org/gcc-4.9/changes.html