48 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// difference_type length() 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 assert(sm.length() == 0);26 const CharT s[] = {'1', '2', '3', 0};27 sm.first = s;28 sm.second = s + 3;29 sm.matched = true;30 assert(sm.length() == 3);31 }32#ifndef TEST_HAS_NO_WIDE_CHARACTERS33 {34 typedef wchar_t CharT;35 typedef std::sub_match<const CharT*> SM;36 SM sm = SM();37 assert(sm.length() == 0);38 const CharT s[] = {'1', '2', '3', 0};39 sm.first = s;40 sm.second = s + 3;41 sm.matched = true;42 assert(sm.length() == 3);43 }44#endif45 46 return 0;47}48