xref: /llvm-project/libcxx/test/std/re/re.regex/re.regex.construct/ptr_size.pass.cpp (revision 7fc6a55688c816f5fc1a5481ae7af25be7500356)
12fdf2024SHubert Tong //===----------------------------------------------------------------------===//
22fdf2024SHubert Tong //
357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
62fdf2024SHubert Tong //
72fdf2024SHubert Tong //===----------------------------------------------------------------------===//
82fdf2024SHubert Tong 
92fdf2024SHubert Tong // <regex>
102fdf2024SHubert Tong 
112fdf2024SHubert Tong // template <class charT, class traits = regex_traits<charT>> class basic_regex;
122fdf2024SHubert Tong 
132fdf2024SHubert Tong // basic_regex(const charT* p, size_t len);
142fdf2024SHubert Tong 
152fdf2024SHubert Tong #include <regex>
162fdf2024SHubert Tong #include <cassert>
172fdf2024SHubert Tong 
18*7fc6a556SMarshall Clow #include "test_macros.h"
19*7fc6a556SMarshall Clow 
202fdf2024SHubert Tong template <class CharT>
212fdf2024SHubert Tong void
test(const CharT * p,std::size_t len,unsigned mc)222fdf2024SHubert Tong test(const CharT* p, std::size_t len, unsigned mc)
232fdf2024SHubert Tong {
242fdf2024SHubert Tong     std::basic_regex<CharT> r(p, len);
252fdf2024SHubert Tong     assert(r.flags() == std::regex_constants::ECMAScript);
262fdf2024SHubert Tong     assert(r.mark_count() == mc);
272fdf2024SHubert Tong }
282fdf2024SHubert Tong 
main(int,char **)292df59c50SJF Bastien int main(int, char**)
302fdf2024SHubert Tong {
312fdf2024SHubert Tong     test("\\(a\\)", 5, 0);
322fdf2024SHubert Tong     test("\\(a[bc]\\)", 9, 0);
332fdf2024SHubert Tong     test("\\(a\\([bc]\\)\\)", 13, 0);
342fdf2024SHubert Tong     test("(a([bc]))", 9, 2);
352fdf2024SHubert Tong 
362fdf2024SHubert Tong     test("(\0)(b)(c)(d)", 12, 4);
372fdf2024SHubert Tong     test("(\0)(b)(c)(d)", 9, 3);
382fdf2024SHubert Tong     test("(\0)(b)(c)(d)", 3, 1);
392fdf2024SHubert Tong     test("(\0)(b)(c)(d)", 0, 0);
402df59c50SJF Bastien 
412df59c50SJF Bastien   return 0;
422fdf2024SHubert Tong }
43