Server IP : 172.67.216.182 / Your IP : 172.68.164.86 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/algorithm/string/detail/ |
Upload File : |
// Boost string_algo library find_format.hpp header file ---------------------------// // Copyright Pavol Droba 2002-2003. // // Distributed under 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) // See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP #define BOOST_STRING_FIND_FORMAT_DETAIL_HPP #include <boost/algorithm/string/config.hpp> #include <boost/range/iterator_range_core.hpp> #include <boost/range/const_iterator.hpp> #include <boost/range/iterator.hpp> #include <boost/algorithm/string/detail/find_format_store.hpp> #include <boost/algorithm/string/detail/replace_storage.hpp> namespace boost { namespace algorithm { namespace detail { // find_format_copy (iterator variant) implementation -------------------------------// template< typename OutputIteratorT, typename InputT, typename FormatterT, typename FindResultT, typename FormatResultT > inline OutputIteratorT find_format_copy_impl2( OutputIteratorT Output, const InputT& Input, FormatterT Formatter, const FindResultT& FindResult, const FormatResultT& FormatResult ) { typedef find_format_store< BOOST_STRING_TYPENAME range_const_iterator<InputT>::type, FormatterT, FormatResultT > store_type; // Create store for the find result store_type M( FindResult, FormatResult, Formatter ); if ( !M ) { // Match not found - return original sequence Output = std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); return Output; } // Copy the beginning of the sequence Output = std::copy( ::boost::begin(Input), ::boost::begin(M), Output ); // Format find result // Copy formatted result Output = std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output ); // Copy the rest of the sequence Output = std::copy( M.end(), ::boost::end(Input), Output ); return Output; } template< typename OutputIteratorT, typename InputT, typename FormatterT, typename FindResultT > inline OutputIteratorT find_format_copy_impl( OutputIteratorT Output, const InputT& Input, FormatterT Formatter, const FindResultT& FindResult ) { if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { return ::boost::algorithm::detail::find_format_copy_impl2( Output, Input, Formatter, FindResult, Formatter(FindResult) ); } else { return std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); } } // find_format_copy implementation --------------------------------------------------// template< typename InputT, typename FormatterT, typename FindResultT, typename FormatResultT > inline InputT find_format_copy_impl2( const InputT& Input, FormatterT Formatter, const FindResultT& FindResult, const FormatResultT& FormatResult) { typedef find_format_store< BOOST_STRING_TYPENAME range_const_iterator<InputT>::type, FormatterT, FormatResultT > store_type; // Create store for the find result store_type M( FindResult, FormatResult, Formatter ); if ( !M ) { // Match not found - return original sequence return InputT( Input ); } InputT Output; // Copy the beginning of the sequence boost::algorithm::detail::insert( Output, ::boost::end(Output), ::boost::begin(Input), M.begin() ); // Copy formatted result boost::algorithm::detail::insert( Output, ::boost::end(Output), M.format_result() ); // Copy the rest of the sequence boost::algorithm::detail::insert( Output, ::boost::end(Output), M.end(), ::boost::end(Input) ); return Output; } template< typename InputT, typename FormatterT, typename FindResultT > inline InputT find_format_copy_impl( const InputT& Input, FormatterT Formatter, const FindResultT& FindResult) { if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { return ::boost::algorithm::detail::find_format_copy_impl2( Input, Formatter, FindResult, Formatter(FindResult) ); } else { return Input; } } // replace implementation ----------------------------------------------------// template< typename InputT, typename FormatterT, typename FindResultT, typename FormatResultT > inline void find_format_impl2( InputT& Input, FormatterT Formatter, const FindResultT& FindResult, const FormatResultT& FormatResult) { typedef find_format_store< BOOST_STRING_TYPENAME range_iterator<InputT>::type, FormatterT, FormatResultT > store_type; // Create store for the find result store_type M( FindResult, FormatResult, Formatter ); if ( !M ) { // Search not found - return original sequence return; } // Replace match ::boost::algorithm::detail::replace( Input, M.begin(), M.end(), M.format_result() ); } template< typename InputT, typename FormatterT, typename FindResultT > inline void find_format_impl( InputT& Input, FormatterT Formatter, const FindResultT& FindResult) { if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { ::boost::algorithm::detail::find_format_impl2( Input, Formatter, FindResult, Formatter(FindResult) ); } } } // namespace detail } // namespace algorithm } // namespace boost #endif // BOOST_STRING_FIND_FORMAT_DETAIL_HPP