Home | History | Annotate | Download | only in re.regex.const
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <regex>
     11 
     12 // template <class charT, class traits = regex_traits<charT>>
     13 // class basic_regex
     14 // {
     15 // public:
     16 //     // constants:
     17 //     static constexpr regex_constants::syntax_option_type icase = regex_constants::icase;
     18 //     static constexpr regex_constants::syntax_option_type nosubs = regex_constants::nosubs;
     19 //     static constexpr regex_constants::syntax_option_type optimize = regex_constants::optimize;
     20 //     static constexpr regex_constants::syntax_option_type collate = regex_constants::collate;
     21 //     static constexpr regex_constants::syntax_option_type ECMAScript = regex_constants::ECMAScript;
     22 //     static constexpr regex_constants::syntax_option_type basic = regex_constants::basic;
     23 //     static constexpr regex_constants::syntax_option_type extended = regex_constants::extended;
     24 //     static constexpr regex_constants::syntax_option_type awk = regex_constants::awk;
     25 //     static constexpr regex_constants::syntax_option_type grep = regex_constants::grep;
     26 //     static constexpr regex_constants::syntax_option_type egrep = regex_constants::egrep;
     27 
     28 #include <regex>
     29 #include <type_traits>
     30 #include "test_macros.h"
     31 
     32 template <class _Tp>
     33 void where(const _Tp &) {}
     34 
     35 template <class CharT>
     36 void
     37 test()
     38 {
     39     typedef std::basic_regex<CharT> BR;
     40     static_assert((BR::icase == std::regex_constants::icase), "");
     41     static_assert((BR::nosubs == std::regex_constants::nosubs), "");
     42     static_assert((BR::optimize == std::regex_constants::optimize), "");
     43     static_assert((BR::collate == std::regex_constants::collate), "");
     44     static_assert((BR::ECMAScript == std::regex_constants::ECMAScript), "");
     45     static_assert((BR::basic == std::regex_constants::basic), "");
     46     static_assert((BR::extended == std::regex_constants::extended), "");
     47     static_assert((BR::awk == std::regex_constants::awk), "");
     48     static_assert((BR::grep == std::regex_constants::grep), "");
     49     static_assert((BR::egrep == std::regex_constants::egrep), "");
     50     where(BR::icase);
     51     where(BR::nosubs);
     52     where(BR::optimize);
     53     where(BR::collate);
     54     where(BR::ECMAScript);
     55     where(BR::basic);
     56     where(BR::extended);
     57     where(BR::awk);
     58     where(BR::grep);
     59     where(BR::egrep);
     60 }
     61 
     62 int main()
     63 {
     64     test<char>();
     65     test<wchar_t>();
     66 }
     67