diff --git a/include/boost/algorithm/string/detail/find_format.hpp b/include/boost/algorithm/string/detail/find_format.hpp index fd436ac..0d8b104 100644 --- a/include/boost/algorithm/string/detail/find_format.hpp +++ b/include/boost/algorithm/string/detail/find_format.hpp @@ -24,26 +24,7 @@ namespace boost { // find_format_copy (iterator variant) implementation -------------------------------// - 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 ) - { - return ::boost::algorithm::detail::find_format_copy_impl2( - Output, - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< + template< typename OutputIteratorT, typename InputT, typename FormatterT, @@ -83,25 +64,29 @@ namespace boost { return Output; } -// find_format_copy implementation --------------------------------------------------// - template< - typename InputT, + typename OutputIteratorT, + typename InputT, typename FormatterT, typename FindResultT > - inline InputT find_format_copy_impl( + inline OutputIteratorT find_format_copy_impl( + OutputIteratorT Output, const InputT& Input, FormatterT Formatter, - const FindResultT& FindResult) - { - return ::boost::algorithm::detail::find_format_copy_impl2( + const FindResultT& FindResult ) + { + return ::boost::algorithm::detail::find_format_copy_impl2( + Output, Input, Formatter, FindResult, Formatter(FindResult) ); } - template< + +// find_format_copy implementation --------------------------------------------------// + + template< typename InputT, typename FormatterT, typename FindResultT, @@ -138,24 +123,24 @@ namespace boost { return Output; } -// replace implementation ----------------------------------------------------// - - template< - typename InputT, + template< + typename InputT, typename FormatterT, typename FindResultT > - inline void find_format_impl( - InputT& Input, + inline InputT find_format_copy_impl( + const InputT& Input, FormatterT Formatter, const FindResultT& FindResult) { - ::boost::algorithm::detail::find_format_impl2( + return ::boost::algorithm::detail::find_format_copy_impl2( Input, Formatter, FindResult, Formatter(FindResult) ); } + // replace implementation ----------------------------------------------------// + template< typename InputT, typename FormatterT, @@ -186,6 +171,22 @@ namespace boost { ::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) + { + ::boost::algorithm::detail::find_format_impl2( + Input, + Formatter, + FindResult, + Formatter(FindResult) ); + } + } // namespace detail } // namespace algorithm } // namespace boost diff --git a/include/boost/algorithm/string/detail/find_format_all.hpp b/include/boost/algorithm/string/detail/find_format_all.hpp index 73e9eac..36edf56 100644 --- a/include/boost/algorithm/string/detail/find_format_all.hpp +++ b/include/boost/algorithm/string/detail/find_format_all.hpp @@ -24,29 +24,7 @@ namespace boost { // find_format_all_copy (iterator variant) implementation ---------------------------// - template< - typename OutputIteratorT, - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline OutputIteratorT find_format_all_copy_impl( - OutputIteratorT Output, - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult ) - { - return ::boost::algorithm::detail::find_format_all_copy_impl2( - Output, - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< + template< typename OutputIteratorT, typename InputT, typename FinderT, @@ -94,20 +72,21 @@ namespace boost { return Output; } -// find_format_all_copy implementation ----------------------------------------------// - template< - typename InputT, + typename OutputIteratorT, + typename InputT, typename FinderT, typename FormatterT, typename FindResultT > - inline InputT find_format_all_copy_impl( + inline OutputIteratorT find_format_all_copy_impl( + OutputIteratorT Output, const InputT& Input, FinderT Finder, FormatterT Formatter, - const FindResultT& FindResult) - { - return ::boost::algorithm::detail::find_format_all_copy_impl2( + const FindResultT& FindResult ) + { + return ::boost::algorithm::detail::find_format_all_copy_impl2( + Output, Input, Finder, Formatter, @@ -115,7 +94,9 @@ namespace boost { Formatter(FindResult) ); } - template< + // find_format_all_copy implementation ----------------------------------------------// + + template< typename InputT, typename FinderT, typename FormatterT, @@ -164,20 +145,18 @@ namespace boost { return Output; } -// find_format_all implementation ------------------------------------------------// - - template< - typename InputT, + template< + typename InputT, typename FinderT, typename FormatterT, typename FindResultT > - inline void find_format_all_impl( - InputT& Input, + inline InputT find_format_all_copy_impl( + const InputT& Input, FinderT Finder, FormatterT Formatter, - FindResultT FindResult) + const FindResultT& FindResult) { - ::boost::algorithm::detail::find_format_all_impl2( + return ::boost::algorithm::detail::find_format_all_copy_impl2( Input, Finder, Formatter, @@ -185,6 +164,8 @@ namespace boost { Formatter(FindResult) ); } + // find_format_all implementation ------------------------------------------------// + template< typename InputT, typename FinderT, @@ -256,6 +237,25 @@ namespace boost { } } + template< + typename InputT, + typename FinderT, + typename FormatterT, + typename FindResultT > + inline void find_format_all_impl( + InputT& Input, + FinderT Finder, + FormatterT Formatter, + FindResultT FindResult) + { + ::boost::algorithm::detail::find_format_all_impl2( + Input, + Finder, + Formatter, + FindResult, + Formatter(FindResult) ); + } + } // namespace detail } // namespace algorithm } // namespace boost diff --git a/include/boost/algorithm/string/detail/trim.hpp b/include/boost/algorithm/string/detail/trim.hpp index 9a71700..1233e49 100644 --- a/include/boost/algorithm/string/detail/trim.hpp +++ b/include/boost/algorithm/string/detail/trim.hpp @@ -20,36 +20,6 @@ namespace boost { // trim iterator helper -----------------------------------------------// - // Search for first non matching character from the beginning of the sequence - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_begin( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace ) - { - ForwardIteratorT It=InBegin; - for(; It!=InEnd; ++It ) - { - if (!IsSpace(*It)) - return It; - } - - return It; - } - - // Search for first non matching character from the end of the sequence - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_end( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace ) - { - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return ::boost::algorithm::detail::trim_end_iter_select( InBegin, InEnd, IsSpace, category() ); - } - template< typename ForwardIteratorT, typename PredicateT > inline ForwardIteratorT trim_end_iter_select( ForwardIteratorT InBegin, @@ -86,6 +56,36 @@ namespace boost { return InBegin; } + // Search for first non matching character from the beginning of the sequence + template< typename ForwardIteratorT, typename PredicateT > + inline ForwardIteratorT trim_begin( + ForwardIteratorT InBegin, + ForwardIteratorT InEnd, + PredicateT IsSpace ) + { + ForwardIteratorT It=InBegin; + for(; It!=InEnd; ++It ) + { + if (!IsSpace(*It)) + return It; + } + + return It; + } + + // Search for first non matching character from the end of the sequence + template< typename ForwardIteratorT, typename PredicateT > + inline ForwardIteratorT trim_end( + ForwardIteratorT InBegin, + ForwardIteratorT InEnd, + PredicateT IsSpace ) + { + typedef BOOST_STRING_TYPENAME boost::detail:: + iterator_traits::iterator_category category; + + return ::boost::algorithm::detail::trim_end_iter_select( InBegin, InEnd, IsSpace, category() ); + } + } // namespace detail } // namespace algorithm