https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64239
--- Comment #7 from Mitsuru Kariya <kariya_mitsuru at hotmail dot com> --- When I used the match_results::swap on r218710, I got a compilation error. ========================================== sample code ========================================== #include <regex> int main() { std::cmatch mm1, mm2; mm1.swap(mm2); } ================================================================================================= ========================================== g++ output =========================================== In file included from /usr/local/gcc-218710/include/c++/5.0.0/regex:59:0, from swap.cpp:1: /usr/local/gcc-218710/include/c++/5.0.0/bits/regex.h: In instantiation of 'void std::match_results< <template-parameter-1-1>, <template-parameter-1-2> >::swap(std::match_results< <template-parameter-1-1>, <template-parameter-1-2> >&) [with _Bi_iter = const char*; _Alloc = std::allocator<std::sub_match<const char*> >]': swap.cpp:7:15: required from here /usr/local/gcc-218710/include/c++/5.0.0/bits/regex.h:1864:6: error: no matching function for call to 'std::match_results<const char*>::swap(const char*&, const char*&)' swap(_M_begin, __that._M_begin); ^ /usr/local/gcc-218710/include/c++/5.0.0/bits/regex.h:1861:7: note: candidate: void std::match_results< <template-parameter-1-1>, <template-parameter-1-2> >::swap(std::match_results< <template-parameter-1-1>, <template-parameter-1-2> >&) [with _Bi_iter = const char*; _Alloc = std::allocator<std::sub_match<const char*> >] swap(match_results& __that) ^ /usr/local/gcc-218710/include/c++/5.0.0/bits/regex.h:1861:7: note: candidate expects 1 argument, 2 provided ================================================================================================= ============================================ g++ -v ============================================= Using built-in specs. COLLECT_GCC=/usr/local/gcc-218710/bin/g++ COLLECT_LTO_WRAPPER=/usr/local/gcc-218710/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc.218710/configure --prefix=/usr/local/gcc-218710 --enable-checking=yes --disable-nls --enable-languages=c,c++,lto Thread model: posix gcc version 5.0.0 20141213 (experimental) (GCC) ================================================================================================= Note that the sample code above was compiled successfully on r218555. I think that the match_results::swap needs "use std::swap;" for swapping _M_begin.