Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This is an older version of Boost and was released in 2013. The current version is 1.91.0.
Defines sequence case-conversion algorithms. Algorithms convert each element in the input sequence to the desired case using provided locales.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename OutputIteratorT, typename RangeT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â to_lower_copy(OutputIteratorT, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT to_lower_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename WritableRangeT> Â Â Â Â Â Â void to_lower(WritableRangeT &, const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename RangeT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â to_upper_copy(OutputIteratorT, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT to_upper_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename WritableRangeT> Â Â Â Â Â Â void to_upper(WritableRangeT &, const std::locale & = std::locale()); Â Â } }
Classification predicates are included in the library to give some more convenience when using algorithms like trim() and all() . They wrap functionality of STL classification functions ( e.g. std::isspace() ) into generic functors.
namespace boost { Â Â namespace algorithm { Â Â Â Â unspecified is_classified(std::ctype_base::mask, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â unspecified is_space(const std::locale & = std::locale()); Â Â Â Â unspecified is_alnum(const std::locale & = std::locale()); Â Â Â Â unspecified is_alpha(const std::locale & = std::locale()); Â Â Â Â unspecified is_cntrl(const std::locale & = std::locale()); Â Â Â Â unspecified is_digit(const std::locale & = std::locale()); Â Â Â Â unspecified is_graph(const std::locale & = std::locale()); Â Â Â Â unspecified is_lower(const std::locale & = std::locale()); Â Â Â Â unspecified is_print(const std::locale & = std::locale()); Â Â Â Â unspecified is_punct(const std::locale & = std::locale()); Â Â Â Â unspecified is_upper(const std::locale & = std::locale()); Â Â Â Â unspecified is_xdigit(const std::locale & = std::locale()); Â Â Â Â template<typename RangeT> unspecified is_any_of(const RangeT &); Â Â Â Â template<typename CharT> unspecified is_from_range(CharT, CharT); Â Â Â Â template<typename Pred1T, typename Pred2T> Â Â Â Â Â Â unspecified operator&&(const predicate_facade< Pred1T > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const predicate_facade< Pred2T > &); Â Â Â Â template<typename Pred1T, typename Pred2T> Â Â Â Â Â Â unspecified operator||(const predicate_facade< Pred1T > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const predicate_facade< Pred2T > &); Â Â Â Â template<typename PredT> Â Â Â Â Â Â unspecified operator!(const predicate_facade< PredT > &); Â Â } }
Defines element comparison predicates. Many algorithms in this library can take an additional argument with a predicate used to compare elements. This makes it possible, for instance, to have case insensitive versions of the algorithms.
namespace boost { Â Â namespace algorithm { Â Â Â Â struct is_equal; Â Â Â Â struct is_iequal; Â Â } }
Defines concepts used in string_algo library
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename FinderT, typename IteratorT> struct FinderConcept; Â Â Â Â template<typename FormatterT, typename FinderT, typename IteratorT> Â Â Â Â struct FormatterConcept; Â Â } }
namespace boost { Â Â namespace algorithm { Â Â Â Â enum token_compress_mode_type; Â Â } }
Defines various erase algorithms. Each algorithm removes part(s) of the input according to a searching criteria.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename OutputIteratorT, typename RangeT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_range_copy(OutputIteratorT, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const iterator_range< typename range_const_iterator< RangeT >::type > &); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT erase_range_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const iterator_range< typename range_const_iterator< SequenceT >::type > &); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â void erase_range(SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const iterator_range< typename range_iterator< SequenceT >::type > &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_first_copy(OutputIteratorT, const Range1T &, const Range2T &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT erase_first_copy(const SequenceT &, const RangeT &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void erase_first(SequenceT &, const RangeT &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ierase_first_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT ierase_first_copy(const SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void ierase_first(SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_last_copy(OutputIteratorT, const Range1T &, const Range2T &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT erase_last_copy(const SequenceT &, const RangeT &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void erase_last(SequenceT &, const RangeT &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ierase_last_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT ierase_last_copy(const SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void ierase_last(SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_nth_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT erase_nth_copy(const SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void erase_nth(SequenceT &, const RangeT &, unsigned int); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ierase_nth_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int, const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT ierase_nth_copy(const SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void ierase_nth(SequenceT &, const RangeT &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_all_copy(OutputIteratorT, const Range1T &, const Range2T &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT erase_all_copy(const SequenceT &, const RangeT &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void erase_all(SequenceT &, const RangeT &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ierase_all_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT ierase_all_copy(const SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void ierase_all(SequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename RangeT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_head_copy(OutputIteratorT, const RangeT &, unsigned int); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT erase_head_copy(const SequenceT &, unsigned int); Â Â Â Â template<typename SequenceT> void erase_head(SequenceT &, unsigned int); Â Â Â Â template<typename OutputIteratorT, typename RangeT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_tail_copy(OutputIteratorT, const RangeT &, unsigned int); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT erase_tail_copy(const SequenceT &, unsigned int); Â Â Â Â template<typename SequenceT> void erase_tail(SequenceT &, unsigned int); Â Â } }
Defines a set of find algorithms. The algorithms are searching for a substring of the input. The result is given as an iterator_range delimiting the substring.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename RangeT, typename FinderT> Â Â Â Â Â Â iterator_range< typename range_result_iterator< RangeT >::type > Â Â Â Â Â Â find(RangeT &, FinderT); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â iterator_range< typename range_result_iterator< Range1T >::type > Â Â Â Â Â Â find_first(Range1T &, const Range2T &); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â iterator_range< typename range_result_iterator< Range1T >::type > Â Â Â Â Â Â ifind_first(Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â iterator_range< typename range_result_iterator< Range1T >::type > Â Â Â Â Â Â find_last(Range1T &, const Range2T &); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â iterator_range< typename range_result_iterator< Range1T >::type > Â Â Â Â Â Â ifind_last(Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â iterator_range< typename range_result_iterator< Range1T >::type > Â Â Â Â Â Â find_nth(Range1T &, const Range2T &, unsigned int); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â iterator_range< typename range_result_iterator< Range1T >::type > Â Â Â Â Â Â ifind_nth(Range1T &, const Range2T &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename RangeT> Â Â Â Â Â Â iterator_range< typename range_result_iterator< RangeT >::type > Â Â Â Â Â Â find_head(RangeT &, unsigned int); Â Â Â Â template<typename RangeT> Â Â Â Â Â Â iterator_range< typename range_result_iterator< RangeT >::type > Â Â Â Â Â Â find_tail(RangeT &, unsigned int); Â Â Â Â template<typename RangeT, typename PredicateT> Â Â Â Â Â Â iterator_range< typename range_result_iterator< RangeT >::type > Â Â Â Â Â Â find_token(RangeT &, PredicateT, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â token_compress_mode_type = token_compress_off); Â Â } }
Defines generic replace algorithms. Each algorithm replaces part(s) of the input. The part to be replaced is looked up using a Finder object. Result of finding is then used by a Formatter object to generate the replacement.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename FinderT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatterT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â find_format_copy(OutputIteratorT, const RangeT &, FinderT, FormatterT); Â Â Â Â template<typename SequenceT, typename FinderT, typename FormatterT> Â Â Â Â Â Â SequenceT find_format_copy(const SequenceT &, FinderT, FormatterT); Â Â Â Â template<typename SequenceT, typename FinderT, typename FormatterT> Â Â Â Â Â Â void find_format(SequenceT &, FinderT, FormatterT); Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename FinderT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatterT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â find_format_all_copy(OutputIteratorT, const RangeT &, FinderT, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â FormatterT); Â Â Â Â template<typename SequenceT, typename FinderT, typename FormatterT> Â Â Â Â Â Â SequenceT find_format_all_copy(const SequenceT &, FinderT, FormatterT); Â Â Â Â template<typename SequenceT, typename FinderT, typename FormatterT> Â Â Â Â Â Â void find_format_all(SequenceT &, FinderT, FormatterT); Â Â Â Â template<typename CharT, typename RegexTraitsT> Â Â Â Â Â Â unspecified regex_finder(const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename CharT, typename TraitsT, typename AllocT> Â Â Â Â Â Â unspecified regex_formatter(const std::basic_string< CharT, TraitsT, AllocT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = format_default); Â Â } }
Defines find iterator classes. Find iterator repeatly applies a Finder to the specified input string to search for matches. Dereferencing the iterator yields the current match or a range between the last and the current match depending on the iterator used.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename IteratorT> class find_iterator; Â Â Â Â template<typename IteratorT> class split_iterator; Â Â Â Â template<typename RangeT, typename FinderT> Â Â Â Â Â Â find_iterator< typename range_result_iterator< RangeT >::type > Â Â Â Â Â Â make_find_iterator(RangeT &, FinderT); Â Â Â Â template<typename RangeT, typename FinderT> Â Â Â Â Â Â split_iterator< typename range_result_iterator< RangeT >::type > Â Â Â Â Â Â make_split_iterator(RangeT &, FinderT); Â Â } }
Defines Finder generators. Finder object is a functor which is able to find a substring matching a specific criteria in the input. Finders are used as a pluggable components for replace, find and split facilities. This header contains generator functions for finders provided in this library.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename ContainerT> unspecified first_finder(const ContainerT &); Â Â Â Â template<typename ContainerT, typename PredicateT> Â Â Â Â Â Â unspecified first_finder(const ContainerT &, PredicateT); Â Â Â Â template<typename ContainerT> unspecified last_finder(const ContainerT &); Â Â Â Â template<typename ContainerT, typename PredicateT> Â Â Â Â Â Â unspecified last_finder(const ContainerT &, PredicateT); Â Â Â Â template<typename ContainerT> Â Â Â Â Â Â unspecified nth_finder(const ContainerT &, unsigned int); Â Â Â Â template<typename ContainerT, typename PredicateT> Â Â Â Â Â Â unspecified nth_finder(const ContainerT &, unsigned int, PredicateT); Â Â Â Â unspecified head_finder(unsigned int); Â Â Â Â unspecified tail_finder(unsigned int); Â Â Â Â template<typename PredicateT> Â Â Â Â Â Â unspecified token_finder(PredicateT, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â token_compress_mode_type = token_compress_off); Â Â Â Â template<typename ForwardIteratorT> Â Â Â Â Â Â unspecified range_finder(ForwardIteratorT, ForwardIteratorT); Â Â Â Â template<typename ForwardIteratorT> Â Â Â Â Â Â unspecified range_finder(iterator_range< ForwardIteratorT >); Â Â } }
Defines Formatter generators. Formatter is a functor which formats a string according to given parameters. A Formatter works in conjunction with a Finder. A Finder can provide additional information for a specific Formatter. An example of such a cooperation is regex_finder and regex_formatter.
Formatters are used as pluggable components for replace facilities. This header contains generator functions for the Formatters provided in this library.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename RangeT> unspecified const_formatter(const RangeT &); Â Â Â Â template<typename RangeT> unspecified identity_formatter(); Â Â Â Â template<typename RangeT> unspecified empty_formatter(const RangeT &); Â Â } }
Defines string-related predicates. The predicates determine whether a substring is contained in the input string under various conditions: a string starts with the substring, ends with the substring, simply contains the substring or if both strings are equal. Additionaly the algorithm all() checks all elements of a container to satisfy a condition.
All predicates provide the strong exception guarantee.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename Range1T, typename Range2T, typename PredicateT> Â Â Â Â Â Â bool starts_with(const Range1T &, const Range2T &, PredicateT); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool starts_with(const Range1T &, const Range2T &); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool istarts_with(const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename Range1T, typename Range2T, typename PredicateT> Â Â Â Â Â Â bool ends_with(const Range1T &, const Range2T &, PredicateT); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool ends_with(const Range1T &, const Range2T &); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool iends_with(const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename Range1T, typename Range2T, typename PredicateT> Â Â Â Â Â Â bool contains(const Range1T &, const Range2T &, PredicateT); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool contains(const Range1T &, const Range2T &); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool icontains(const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename Range1T, typename Range2T, typename PredicateT> Â Â Â Â Â Â bool equals(const Range1T &, const Range2T &, PredicateT); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool equals(const Range1T &, const Range2T &); Â Â Â Â template<typename Range1T, typename Range2T> Â Â Â Â Â Â bool iequals(const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename RangeT, typename PredicateT> Â Â Â Â Â Â bool all(const RangeT &, PredicateT); Â Â } }
Defines regex variants of the algorithms.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename RangeT, typename CharT, typename RegexTraitsT> Â Â Â Â Â Â iterator_range< typename range_result_iterator< RangeT >::type > Â Â Â Â Â Â find_regex(RangeT &, const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename CharT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename RegexTraitsT, typename FormatStringTraitsT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatStringAllocatorT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_regex_copy(OutputIteratorT, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::basic_string< CharT, FormatStringTraitsT, FormatStringAllocatorT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default|format_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatStringTraitsT, typename FormatStringAllocatorT> Â Â Â Â Â Â SequenceT replace_regex_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::basic_string< CharT, FormatStringTraitsT, FormatStringAllocatorT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default|format_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatStringTraitsT, typename FormatStringAllocatorT> Â Â Â Â Â Â void replace_regex(SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::basic_string< CharT, FormatStringTraitsT, FormatStringAllocatorT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default|format_default); Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename CharT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename RegexTraitsT, typename FormatStringTraitsT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatStringAllocatorT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_all_regex_copy(OutputIteratorT, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::basic_string< CharT, FormatStringTraitsT, FormatStringAllocatorT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default|format_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatStringTraitsT, typename FormatStringAllocatorT> Â Â Â Â Â Â SequenceT replace_all_regex_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::basic_string< CharT, FormatStringTraitsT, FormatStringAllocatorT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default|format_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename FormatStringTraitsT, typename FormatStringAllocatorT> Â Â Â Â Â Â void replace_all_regex(SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::basic_string< CharT, FormatStringTraitsT, FormatStringAllocatorT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default|format_default); Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename CharT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename RegexTraitsT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_regex_copy(OutputIteratorT, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT> Â Â Â Â Â Â SequenceT erase_regex_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT> Â Â Â Â Â Â void erase_regex(SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename CharT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename RegexTraitsT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â erase_all_regex_copy(OutputIteratorT, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT> Â Â Â Â Â Â SequenceT erase_all_regex_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename SequenceT, typename CharT, typename RegexTraitsT> Â Â Â Â Â Â void erase_all_regex(SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename SequenceSequenceT, typename RangeT, typename CharT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename RegexTraitsT> Â Â Â Â Â Â SequenceSequenceT & Â Â Â Â Â Â find_all_regex(SequenceSequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename SequenceSequenceT, typename RangeT, typename CharT, Â Â Â Â Â Â Â Â Â Â Â Â Â typename RegexTraitsT> Â Â Â Â Â Â SequenceSequenceT & Â Â Â Â Â Â split_regex(SequenceSequenceT &, const RangeT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â } }
Defines the regex_finder and regex_formatter generators. These two functors are designed to work together. regex_formatter uses additional information about a match contained in the regex_finder search result.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename CharT, typename RegexTraitsT> Â Â Â Â Â Â unspecified regex_finder(const basic_regex< CharT, RegexTraitsT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = match_default); Â Â Â Â template<typename CharT, typename TraitsT, typename AllocT> Â Â Â Â Â Â unspecified regex_formatter(const std::basic_string< CharT, TraitsT, AllocT > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â match_flag_type = format_default); Â Â } }
Defines various replace algorithms. Each algorithm replaces part(s) of the input according to set of searching and replace criteria.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_range_copy(OutputIteratorT, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const iterator_range< typename range_const_iterator< Range1T >::type > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT replace_range_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const iterator_range< typename range_const_iterator< SequenceT >::type > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const RangeT &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void replace_range(SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const iterator_range< typename range_iterator< SequenceT >::type > &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const RangeT &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_first_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range3T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceT replace_first_copy(const SequenceT &, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void replace_first(SequenceT &, const Range1T &, const Range2T &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ireplace_first_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range3T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range2T, typename Range1T> Â Â Â Â Â Â SequenceT ireplace_first_copy(const SequenceT &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void ireplace_first(SequenceT &, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_last_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range3T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceT replace_last_copy(const SequenceT &, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void replace_last(SequenceT &, const Range1T &, const Range2T &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ireplace_last_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range3T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceT ireplace_last_copy(const SequenceT &, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void ireplace_last(SequenceT &, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_nth_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int, const Range3T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceT replace_nth_copy(const SequenceT &, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int, const Range2T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void replace_nth(SequenceT &, const Range1T &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ireplace_nth_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int, const Range3T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceT ireplace_nth_copy(const SequenceT &, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â unsigned int, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void ireplace_nth(SequenceT &, const Range1T &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &, const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_all_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range3T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceT replace_all_copy(const SequenceT &, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void replace_all(SequenceT &, const Range1T &, const Range2T &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T, Â Â Â Â Â Â Â Â Â Â Â Â Â typename Range3T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â ireplace_all_copy(OutputIteratorT, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range3T &, const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceT ireplace_all_copy(const SequenceT &, const Range1T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â void ireplace_all(SequenceT &, const Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_head_copy(OutputIteratorT, const Range1T &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT replace_head_copy(const SequenceT &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const RangeT &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void replace_head(SequenceT &, unsigned int, const RangeT &); Â Â Â Â template<typename OutputIteratorT, typename Range1T, typename Range2T> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â replace_tail_copy(OutputIteratorT, const Range1T &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const Range2T &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â SequenceT replace_tail_copy(const SequenceT &, unsigned int, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const RangeT &); Â Â Â Â template<typename SequenceT, typename RangeT> Â Â Â Â Â Â void replace_tail(SequenceT &, unsigned int, const RangeT &); Â Â } }
Traits defined in this header are used by various algorithms to achieve better performance for specific containers. Traits provide fail-safe defaults. If a container supports some of these features, it is possible to specialize the specific trait for this container. For lacking compilers, it is possible of define an override for a specific tester function.
Due to a language restriction, it is not currently possible to define specializations for stl containers without including the corresponding header. To decrease the overhead needed by this inclusion, user can selectively include a specialization header for a specific container. They are located in boost/algorithm/string/stl directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp header which contains specializations for all stl containers.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename T> class has_native_replace; Â Â Â Â template<typename T> class has_stable_iterators; Â Â Â Â template<typename T> class has_const_time_insert; Â Â Â Â template<typename T> class has_const_time_erase; Â Â } }
Defines basic split algorithms. Split algorithms can be used to divide a string into several parts according to given criteria.
Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are std::vector<std::string> or std::list<boost::iterator_range<std::string::iterator>>
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename SequenceSequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceSequenceT & Â Â Â Â Â Â find_all(SequenceSequenceT &, Range1T &, const Range2T &); Â Â Â Â template<typename SequenceSequenceT, typename Range1T, typename Range2T> Â Â Â Â Â Â SequenceSequenceT & Â Â Â Â Â Â ifind_all(SequenceSequenceT &, Range1T &, const Range2T &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceSequenceT, typename RangeT, typename PredicateT> Â Â Â Â Â Â SequenceSequenceT & Â Â Â Â Â Â split(SequenceSequenceT &, RangeT &, PredicateT, Â Â Â Â Â Â Â Â Â Â Â Â token_compress_mode_type = token_compress_off); Â Â } }
This file includes sequence traits for stl containers.
Cumulative include for string_algo library
Cumulative include for string_algo library. In addtion to string.hpp contains also regex-related stuff.
Defines trim algorithms. Trim algorithms are used to remove trailing and leading spaces from a sequence (string). Space is recognized using given locales.
Parametric (_if ) variants use a predicate (functor) to select which characters are to be trimmed.. Functions take a selection predicate as a parameter, which is used to determine whether a character is a space. Common predicates are provided in classification.hpp header.
namespace boost { Â Â namespace algorithm { Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename PredicateT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â trim_left_copy_if(OutputIteratorT, const RangeT &, PredicateT); Â Â Â Â template<typename SequenceT, typename PredicateT> Â Â Â Â Â Â SequenceT trim_left_copy_if(const SequenceT &, PredicateT); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT trim_left_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename PredicateT> Â Â Â Â Â Â void trim_left_if(SequenceT &, PredicateT); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â void trim_left(SequenceT &, const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename PredicateT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â trim_right_copy_if(OutputIteratorT, const RangeT &, PredicateT); Â Â Â Â template<typename SequenceT, typename PredicateT> Â Â Â Â Â Â SequenceT trim_right_copy_if(const SequenceT &, PredicateT); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT trim_right_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename PredicateT> Â Â Â Â Â Â void trim_right_if(SequenceT &, PredicateT); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â void trim_right(SequenceT &, const std::locale & = std::locale()); Â Â Â Â template<typename OutputIteratorT, typename RangeT, typename PredicateT> Â Â Â Â Â Â OutputIteratorT Â Â Â Â Â Â trim_copy_if(OutputIteratorT, const RangeT &, PredicateT); Â Â Â Â template<typename SequenceT, typename PredicateT> Â Â Â Â Â Â SequenceT trim_copy_if(const SequenceT &, PredicateT); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â SequenceT trim_copy(const SequenceT &, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â const std::locale & = std::locale()); Â Â Â Â template<typename SequenceT, typename PredicateT> Â Â Â Â Â Â void trim_if(SequenceT &, PredicateT); Â Â Â Â template<typename SequenceT> Â Â Â Â Â Â void trim(SequenceT &, const std::locale & = std::locale()); Â Â } }
| Copyright © 2002-2004 Pavol Droba |