Server IP : 172.67.216.182 / Your IP : 108.162.226.168 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/boost/boost_1_59_0/boost/regex/ |
Upload File : |
/* * * Copyright (c) 2004 * John Maddock * * Use, modification and distribution are subject to the * Boost Software License, Version 1.0. (See accompanying file * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) * */ /* * LOCATION: see http://www.boost.org for most recent version. * FILE mfc.hpp * VERSION see <boost/version.hpp> * DESCRIPTION: Overloads and helpers for using MFC/ATL string types with Boost.Regex. */ #ifndef BOOST_REGEX_MFC_HPP #define BOOST_REGEX_MFC_HPP #include <atlsimpstr.h> #include <boost/regex.hpp> namespace boost{ // // define the types used for TCHAR's: typedef basic_regex<TCHAR> tregex; typedef match_results<TCHAR const*> tmatch; typedef regex_iterator<TCHAR const*> tregex_iterator; typedef regex_token_iterator<TCHAR const*> tregex_token_iterator; // Obsolete. Remove #define SIMPLE_STRING_PARAM class B, bool b #define SIMPLE_STRING_ARG_LIST B, b // // define regex creation functions: // template <class B, bool b> inline basic_regex<B> make_regex(const ATL::CSimpleStringT<B, b>& s, ::boost::regex_constants::syntax_option_type f = boost::regex_constants::normal) { basic_regex<B> result(s.GetString(), s.GetString() + s.GetLength(), f); return result; } // // regex_match overloads: // template <class B, bool b, class A, class T> inline bool regex_match(const ATL::CSimpleStringT<B, b>& s, match_results<const B*, A>& what, const basic_regex<B, T>& e, boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { return ::boost::regex_match(s.GetString(), s.GetString() + s.GetLength(), what, e, f); } template <class B, bool b, class T> inline bool regex_match(const ATL::CSimpleStringT<B, b>& s, const basic_regex<B, T>& e, boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { return ::boost::regex_match(s.GetString(), s.GetString() + s.GetLength(), e, f); } // // regex_search overloads: // template <class B, bool b, class A, class T> inline bool regex_search(const ATL::CSimpleStringT<B, b>& s, match_results<const B*, A>& what, const basic_regex<B, T>& e, boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { return ::boost::regex_search(s.GetString(), s.GetString() + s.GetLength(), what, e, f); } template <class B, bool b, class T> inline bool regex_search(const ATL::CSimpleStringT<B, b>& s, const basic_regex<B, T>& e, boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { return ::boost::regex_search(s.GetString(), s.GetString() + s.GetLength(), e, f); } // // regex_iterator creation: // template <class B, bool b> inline regex_iterator<B const*> make_regex_iterator(const ATL::CSimpleStringT<B, b>& s, const basic_regex<B>& e, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { regex_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, f); return result; } template <class B, bool b> inline regex_token_iterator<B const*> make_regex_token_iterator(const ATL::CSimpleStringT<B, b>& s, const basic_regex<B>& e, int sub = 0, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, sub, f); return result; } template <class B, bool b> inline regex_token_iterator<B const*> make_regex_token_iterator(const ATL::CSimpleStringT<B, b>& s, const basic_regex<B>& e, const std::vector<int>& subs, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f); return result; } template <class B, bool b, std::size_t N> inline regex_token_iterator<B const*> make_regex_token_iterator(const ATL::CSimpleStringT<B, b>& s, const basic_regex<B>& e, const int (& subs)[N], ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default) { regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f); return result; } template <class OutputIterator, class BidirectionalIterator, class traits, class B, bool b> OutputIterator regex_replace(OutputIterator out, BidirectionalIterator first, BidirectionalIterator last, const basic_regex<B, traits>& e, const ATL::CSimpleStringT<B, b>& fmt, match_flag_type flags = match_default) { return ::boost::regex_replace(out, first, last, e, fmt.GetString(), flags); } namespace re_detail{ template <class B, bool b> class mfc_string_out_iterator { ATL::CSimpleStringT<B, b>* out; public: mfc_string_out_iterator(ATL::CSimpleStringT<B, b>& s) : out(&s) {} mfc_string_out_iterator& operator++() { return *this; } mfc_string_out_iterator& operator++(int) { return *this; } mfc_string_out_iterator& operator*() { return *this; } mfc_string_out_iterator& operator=(B v) { out->AppendChar(v); return *this; } typedef std::ptrdiff_t difference_type; typedef B value_type; typedef value_type* pointer; typedef value_type& reference; typedef std::output_iterator_tag iterator_category; }; } template <class traits, class B, bool b> ATL::CSimpleStringT<B, b> regex_replace(const ATL::CSimpleStringT<B, b>& s, const basic_regex<B, traits>& e, const ATL::CSimpleStringT<B, b>& fmt, match_flag_type flags = match_default) { ATL::CSimpleStringT<B, b> result(s.GetManager()); re_detail::mfc_string_out_iterator<B, b> i(result); regex_replace(i, s.GetString(), s.GetString() + s.GetLength(), e, fmt.GetString(), flags); return result; } } // namespace boost. #endif