What part of regex is supported by GCC 4.9?

后端 未结 2 748
生来不讨喜
生来不讨喜 2020-12-21 17:12

I don\'t get this. GCC is supposed to support but accoriding to their http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr1

Status page \"7 Reg

相关标签:
2条回答
  • 2020-12-21 17:28

    GCC 4.9 does indeed support the C++11 <regex> functionality but not the tr1 version. Note that the difference is that parts (all?) of the latter exist within a tr1:: namespace while the C++11 <regex> is within namespace std. There's not much point to going backwards and adding in tr1 support when C++11 has been published for some time now.

    0 讨论(0)
  • 2020-12-21 17:32

    Following information can be found from GCC 4.9 release notes:

    "Support for various C++14 additions have been added to the C++ Front End, on the standard C++ library side the most important addition is support for the C++11 regex"

    If you want to install the latest GCC4.9 version to try by yourself you can follow below SO link:

    How do I compile and run GCC 4.9.x?

    Here is the sample program which has compiled using gcc4.9 and subsequent run.

    //Sample Program
    #include <regex>
    #include <iostream>
    using namespace std;
    
    int main() {
        regex  reg("[0-9]+");
        if (regex_match("123000", reg)) {
            cout << "It's a match!" <<endl;
        }
     return 0;
    }
    
    $g++ -std=c++11 foo.cpp -o foo
    $ g++ -v
    Using built-in specs.
    COLLECT_GCC=/home/mantosh/gcc-4.9.0/bin/g++
    COLLECT_LTO_WRAPPER=/home/mantosh/gcc-4.9.0/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
    Target: x86_64-unknown-linux-gnu
    Configured with: /home/mantosh/objdir/../gcc-4.9.0/configure --disable-multilib --prefix=/home/mantosh/gcc-4.9.0
    Thread model: posix
    gcc version 4.9.0 (GCC)
    
    $ ./foo
    It's a match!
    
    0 讨论(0)
提交回复
热议问题