127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//===----------------------------------------------------------------------===// 227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// 327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// The LLVM Compiler Infrastructure 427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// 827405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant//===----------------------------------------------------------------------===// 927405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 1027405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// <regex> 1127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 1227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// class match_results<BidirectionalIterator, Allocator> 1327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 1427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// template <class BidirectionalIterator, class Allocator> 1527405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// bool 1627405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// operator==(const match_results<BidirectionalIterator, Allocator>& m1, 1727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// const match_results<BidirectionalIterator, Allocator>& m2); 1827405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 1927405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// template <class BidirectionalIterator, class Allocator> 2027405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// bool 2127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// operator!=(const match_results<BidirectionalIterator, Allocator>& m1, 2227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant// const match_results<BidirectionalIterator, Allocator>& m2); 2327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 2427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant#include <regex> 2527405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant#include <cassert> 26ee226c05af9e0187098f43fb71465a581487af9bDan Austin#include "test_macros.h" 2727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 2827405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnantvoid 2927405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnanttest() 3027405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant{ 3127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant std::match_results<const char*> m1; 3227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant const char s[] = "abcdefghijk"; 3327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant assert(std::regex_search(s, m1, std::regex("cd((e)fg)hi"))); 3427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant std::match_results<const char*> m2; 3527405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 3627405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant assert(m1 == m1); 3727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant assert(m1 != m2); 3827405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 3927405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant m2 = m1; 4027405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 4127405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant assert(m1 == m2); 4227405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant} 4327405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant 4427405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnantint main() 4527405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant{ 4627405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant test(); 4727405f91a83821e659963bec5f3e71be7e4c08e6Howard Hinnant} 48