brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 08a9dbf Raw
52 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <regex>10 11// template <class BidirectionalIterator> class sub_match;12 13// operator string_type() const;14 15#include <regex>16#include <cassert>17#include "test_macros.h"18 19int main(int, char**)20{21    {22        typedef char CharT;23        typedef std::sub_match<const CharT*> SM;24        SM sm = SM();25        SM::string_type str = sm;26        assert(str.empty());27        const CharT s[] = {'1', '2', '3', 0};28        sm.first = s;29        sm.second = s + 3;30        sm.matched = true;31        str = sm;32        assert(str == std::string("123"));33    }34#ifndef TEST_HAS_NO_WIDE_CHARACTERS35    {36        typedef wchar_t CharT;37        typedef std::sub_match<const CharT*> SM;38        SM sm = SM();39        SM::string_type str = sm;40        assert(str.empty());41        const CharT s[] = {'1', '2', '3', 0};42        sm.first = s;43        sm.second = s + 3;44        sm.matched = true;45        str = sm;46        assert(str == std::wstring(L"123"));47    }48#endif49 50  return 0;51}52