<regex> doesn't work with g++

Zouzou internet@123gen.com
Fri Jul 27 08:37:00 GMT 2012

On 27/07/12 5:26, Daniel Colascione wrote:
> On 7/26/2012 8:03 PM, Yaakov (Cygwin/X) wrote:
>> On 2012-07-26 16:46, Daniel Colascione wrote:
>>> $ g++ -std=gnu++0x foo.cpp
>>> /tmp/ccS3vCW7.o:foo.cpp:(.text$_ZNSt11basic_regexIcSt12regex_traitsIcEEC1EPKcj[std::basic_regex<char,
>>> std::regex_traits<char> >::basic_regex(char const*, unsigned
>>> int)]+0x60): undefined reference to `std::basic_regex<char,
>>> std::regex_traits<char> >::_M_compile()'
>>> collect2: ld returned 1 exit status
>> GCC 4.5 does not have full support for C++0x.  We'll need an upgrade to
>> 4.7 for this to work.
> That's surprising. The regex header was in TR1, from back in 2005. I'd
> have expected gcc to support it a long time ago. I'm also surprised to
> see that the header definition present and the libstdc++ implementation
> absent. That's what made me think there was something wrong with the
> toolchain.
> Thanks.

std::regex is not fully implemented; upgrading to GCC 4.7 won't change 
anything. there are several todo notices in regex header files hinting 
at this.

have a look at boost::regex for the time being; should be close enough 
to std::regex.


Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

More information about the Cygwin mailing list