compare_string_type.pass.cpp revision 6dfff1c9b9147641601574c953e208ece17f27d8
1cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant//===----------------------------------------------------------------------===// 2cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant// 3cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant// The LLVM Compiler Infrastructure 4cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard 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. 7cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant// 8cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant//===----------------------------------------------------------------------===// 9cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant 10cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant// <regex> 11cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant 12cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant// template <class BidirectionalIterator> class sub_match; 13cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant 14cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant// int compare(const string_type& s) const; 15cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant 16cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant#include <regex> 17cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant#include <cassert> 186dfff1c9b9147641601574c953e208ece17f27d8Marshall Clow#include "test_macros.h" 19cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant 20cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnantint main() 21cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant{ 22cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant { 23cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant typedef char CharT; 24cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant typedef std::sub_match<const CharT*> SM; 25cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant typedef SM::string_type string; 26cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant SM sm = SM(); 27cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant SM sm2 = SM(); 28cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant assert(sm.compare(string()) == 0); 29cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant const CharT s[] = {'1', '2', '3', 0}; 30cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant sm.first = s; 31cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant sm.second = s + 3; 32cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant sm.matched = true; 33cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant assert(sm.compare(string()) > 0); 34cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant assert(sm.compare(string("123")) == 0); 35cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant } 36cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant { 37cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant typedef wchar_t CharT; 38cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant typedef std::sub_match<const CharT*> SM; 39cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant typedef SM::string_type string; 40cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant SM sm = SM(); 41cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant SM sm2 = SM(); 42cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant assert(sm.compare(string()) == 0); 43cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant const CharT s[] = {'1', '2', '3', 0}; 44cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant sm.first = s; 45cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant sm.second = s + 3; 46cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant sm.matched = true; 47cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant assert(sm.compare(string()) > 0); 48cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant assert(sm.compare(string(L"123")) == 0); 49cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant } 50cd85b9ee137e179cf38d935fc500e12521ccd3d2Howard Hinnant} 51