18c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant//===----------------------------------------------------------------------===// 28c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// 38c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// The LLVM Compiler Infrastructure 48c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard 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. 78c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// 88c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant//===----------------------------------------------------------------------===// 98c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant 108c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// <regex> 118c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant 128c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// template <class charT, class traits = regex_traits<charT>> 138c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// class basic_regex 148c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// { 158c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// public: 168c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// // constants: 178c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type icase = regex_constants::icase; 188c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type nosubs = regex_constants::nosubs; 198c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type optimize = regex_constants::optimize; 208c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type collate = regex_constants::collate; 218c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type ECMAScript = regex_constants::ECMAScript; 228c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type basic = regex_constants::basic; 238c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type extended = regex_constants::extended; 248c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type awk = regex_constants::awk; 258c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type grep = regex_constants::grep; 268c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant// static constexpr regex_constants::syntax_option_type egrep = regex_constants::egrep; 278c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant 288c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant#include <regex> 298c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant#include <type_traits> 308c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant 310a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnanttemplate <class _Tp> 320a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnantvoid where(const _Tp &) {} 330a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant 348c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnanttemplate <class CharT> 358c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnantvoid 368c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnanttest() 378c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant{ 388c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant typedef std::basic_regex<CharT> BR; 398c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::icase == std::regex_constants::icase), ""); 408c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::nosubs == std::regex_constants::nosubs), ""); 418c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::optimize == std::regex_constants::optimize), ""); 428c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::collate == std::regex_constants::collate), ""); 438c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::ECMAScript == std::regex_constants::ECMAScript), ""); 448c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::basic == std::regex_constants::basic), ""); 458c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::extended == std::regex_constants::extended), ""); 468c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::awk == std::regex_constants::awk), ""); 478c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::grep == std::regex_constants::grep), ""); 488c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant static_assert((BR::egrep == std::regex_constants::egrep), ""); 490a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::icase); 500a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::nosubs); 510a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::optimize); 520a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::collate); 530a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::ECMAScript); 540a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::basic); 550a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::extended); 560a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::awk); 570a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::grep); 580a69fa14d2f0521e45a72068c14fe573b140d48bHoward Hinnant where(BR::egrep); 598c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant} 608c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant 618c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnantint main() 628c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant{ 638c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant test<char>(); 648c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant test<wchar_t>(); 658c2c18d57ced35ef97f2e97d426a8c334093c4b3Howard Hinnant} 66