.. _sprout-string-char_traits: ############################################################################### char_traits ############################################################################### .. toctree:: :hidden: assign eq lt compare length find move copy assign-string not_eof to_char_type to_int_type eq_int_type eof compare-iterator length-iterator find-iterator move-iterator copy-iterator assign-iterator Interface ======================================== .. sourcecode:: c++ template struct char_traits; Description ======================================== Member types ---------------------------------------- .. csv-table:: :header: type, definition :widths: 4, 8 char_type, std::char_traits::char_type int_type, std::char_traits::int_type off_type, std::char_traits::off_type pos_type, std::char_traits::pos_type state_type, std::char_traits::state_type Static member functions ---------------------------------------- character operations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. csv-table:: :header: function :widths: 4, 8 :doc:`assign <./assign>`, "" :doc:`eq <./eq>`, "" :doc:`lt <./lt>`, "" string operations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. csv-table:: :header: function :widths: 4, 8 :doc:`compare <./compare>`, "" :doc:`length<./length>`, "" :doc:`find <./find>`, "" :doc:`move <./move>`, "" :doc:`copy <./copy>`, "" :doc:`assign <./assign-string>`, "" integer type operations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. csv-table:: :header: function :widths: 4, 8 :doc:`not_eof <./not_eof>`, "" :doc:`to_char_type <./to_char_type>`, "" :doc:`to_int_type <./to_int_type>`, "" :doc:`eq_int_type <./eq_int_type>`, "" :doc:`eof <./eof>`, "" string operations (for iterator) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. csv-table:: :header: function :widths: 4, 8 :doc:`compare <./compare-iterator>`, "" :doc:`length<./length-iterator>`, "" :doc:`find <./find-iterator>`, "" :doc:`move <./move-iterator>`, "" :doc:`copy <./copy-iterator>`, "" :doc:`assign <./assign-iterator>`, "" Header ======================================== ``sprout/string/char_traits.hpp`` Convenience header: ``sprout/string.hpp`` Interface of all ======================================== .. sourcecode:: c++ template struct char_traits { // types: typedef typename std::char_traits::char_type char_type; typedef typename std::char_traits::int_type int_type; typedef typename std::char_traits::off_type off_type; typedef typename std::char_traits::pos_type pos_type; typedef typename std::char_traits::state_type state_type; // character operations: static SPROUT_CXX14_CONSTEXPR void assign(char_type& c1, char_type const& c2) SPROUT_NOEXCEPT; static SPROUT_CONSTEXPR bool eq(char_type c1, char_type c2) SPROUT_NOEXCEPT; static SPROUT_CONSTEXPR bool lt(char_type c1, char_type c2) SPROUT_NOEXCEPT; // string operations: static SPROUT_CONSTEXPR int compare(char_type const* s1, char_type const* s2, std::size_t n); static SPROUT_CONSTEXPR std::size_t length(char_type const* s); static SPROUT_CONSTEXPR char_type const* find(char_type const* s, std::size_t n, char_type const& a); static SPROUT_CXX14_CONSTEXPR char_type* move(char_type* s1, char_type const* s2, std::size_t n); static SPROUT_CXX14_CONSTEXPR char_type* copy(char_type* s1, char_type const* s2, std::size_t n); static SPROUT_CXX14_CONSTEXPR char_type* assign(char_type* s, std::size_t n, char_type a); // integer type operations: static SPROUT_CONSTEXPR int_type not_eof(int_type c) SPROUT_NOEXCEPT; static SPROUT_CONSTEXPR char_type to_char_type(int_type c) SPROUT_NOEXCEPT; static SPROUT_CONSTEXPR int_type to_int_type(char_type c) SPROUT_NOEXCEPT; static SPROUT_CONSTEXPR bool eq_int_type(int_type c1, int_type c2) SPROUT_NOEXCEPT; static SPROUT_CONSTEXPR int_type eof() SPROUT_NOEXCEPT; // string operations (for iterator): template static SPROUT_CONSTEXPR int compare(char_type const* s1, ConstInputIterator s2, std::size_t n); template static SPROUT_CONSTEXPR int compare(ConstInputIterator s1, char_type const* s2, std::size_t n); template static SPROUT_CONSTEXPR int compare(ConstInputIterator1 s1, ConstInputIterator2 s2, std::size_t n); template static SPROUT_CONSTEXPR std::size_t length(ConstInputIterator s); template static SPROUT_CONSTEXPR ConstInputIterator find(ConstInputIterator s, std::size_t n, char_type const& a); template static SPROUT_CXX14_CONSTEXPR OutputIterator move(OutputIterator s1, ConstInputIterator s2, std::size_t n); template static SPROUT_CXX14_CONSTEXPR OutputIterator copy(OutputIterator s1, ConstInputIterator s2, std::size_t n); template static SPROUT_CXX14_CONSTEXPR OutputIterator assign(OutputIterator s, std::size_t n, char_type a); };