From 260291ea69bc487863d58711f4ff8239d26beea5 Mon Sep 17 00:00:00 2001 From: Bolero-MURAKAMI Date: Fri, 6 Sep 2013 14:27:44 +0900 Subject: [PATCH] add doc: basic_string index --- docs/_sources/libs/array/array/index.txt | 138 ++-- .../libs/string/basic_string/index.txt | 402 ++++++++++ .../libs/string/char_traits/index.txt | 98 +-- docs/_sources/libs/string/index.txt | 50 +- docs/libs/array/array/at.html | 20 +- docs/libs/array/array/empty.html | 10 +- docs/libs/array/array/front.html | 10 +- docs/libs/array/array/index.html | 138 ++-- docs/libs/array/array/operator-subscript.html | 20 +- docs/libs/string/basic_string/index.html | 716 ++++++++++++++++++ .../libs/string/basic_string/swap-global.html | 10 +- .../string/char_traits/assign-iterator.html | 10 +- docs/libs/string/char_traits/index.html | 100 +-- docs/libs/string/index.html | 66 +- docs/searchindex.js | 2 +- source/libs/array/array/index.rst | 138 ++-- source/libs/string/basic_string/index.rst | 402 ++++++++++ source/libs/string/char_traits/index.rst | 98 +-- source/libs/string/index.rst | 50 +- 19 files changed, 2073 insertions(+), 405 deletions(-) create mode 100644 docs/_sources/libs/string/basic_string/index.txt create mode 100644 docs/libs/string/basic_string/index.html create mode 100644 source/libs/string/basic_string/index.rst diff --git a/docs/_sources/libs/array/array/index.txt b/docs/_sources/libs/array/array/index.txt index 4bce3b68..b4c212fc 100644 --- a/docs/_sources/libs/array/array/index.txt +++ b/docs/_sources/libs/array/array/index.txt @@ -22,8 +22,8 @@ array size max_size empty - at operator-subscript + at front back data @@ -34,71 +34,7 @@ Interface .. sourcecode:: c++ template - class array { - // types: - typedef T& reference; - typedef T const& const_reference; - typedef /*implementation-defined*/ iterator; - typedef /*implementation-defined*/ const_iterator; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef T const* const_pointer; - typedef sprout::reverse_iterator reverse_iterator; - typedef sprout::reverse_iterator const_reverse_iterator; - - // constants: - SPROUT_STATIC_CONSTEXPR size_type static_size = N; - - T elems[N ? N : 1]; // exposition only - - // construct/copy/destroy: - template - array& operator=(array const& rhs); - template - array& operator=(array&& rhs); - - // modifiers: - void fill(const_reference value); - SPROUT_CONSTEXPR array fill(const_reference value) const; - void assign(const_reference value); - SPROUT_CONSTEXPR array assign(const_reference value) const; - void swap(array&) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::swap(std::declval(), std::declval()))); - - // iterators: - iterator begin() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT; - iterator end() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT; - reverse_iterator rbegin() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator rbegin() const SPROUT_NOEXCEPT; - reverse_iterator rend() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator rend() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator crbegin() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator crend() const SPROUT_NOEXCEPT; - - // capacity: - SPROUT_CONSTEXPR size_type size() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR size_type max_size() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR bool empty() const SPROUT_NOEXCEPT; - - // element access: - reference operator[](size_type n); - SPROUT_CONSTEXPR const_reference operator[](size_type n) const; - reference at(size_type n); - SPROUT_CONSTEXPR const_reference at(size_type n) const; - reference front(); - SPROUT_CONSTEXPR const_reference front() const; - reference back(); - SPROUT_CONSTEXPR const_reference back() const; - pointer data() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT; - pointer c_array() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_pointer c_array() const SPROUT_NOEXCEPT; - }; + class array; Description ======================================== @@ -205,3 +141,73 @@ Header Convenience header: ``sprout/array.hpp`` +Interface of all +======================================== +.. sourcecode:: c++ + + template + class array { + // types: + typedef T& reference; + typedef T const& const_reference; + typedef /*implementation-defined*/ iterator; + typedef /*implementation-defined*/ const_iterator; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef T value_type; + typedef T* pointer; + typedef T const* const_pointer; + typedef sprout::reverse_iterator reverse_iterator; + typedef sprout::reverse_iterator const_reverse_iterator; + + // constants: + SPROUT_STATIC_CONSTEXPR size_type static_size = N; + + T elems[N ? N : 1]; // exposition only + + // construct/copy/destroy: + template + array& operator=(array const& rhs); + template + array& operator=(array&& rhs); + + // modifiers: + void fill(const_reference value); + SPROUT_CONSTEXPR array fill(const_reference value) const; + void assign(const_reference value); + SPROUT_CONSTEXPR array assign(const_reference value) const; + void swap(array&) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::swap(std::declval(), std::declval()))); + + // iterators: + iterator begin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT; + iterator end() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT; + reverse_iterator rbegin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rbegin() const SPROUT_NOEXCEPT; + reverse_iterator rend() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crend() const SPROUT_NOEXCEPT; + + // capacity: + SPROUT_CONSTEXPR size_type size() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type max_size() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR bool empty() const SPROUT_NOEXCEPT; + + // element access: + reference operator[](size_type n); + SPROUT_CONSTEXPR const_reference operator[](size_type n) const; + reference at(size_type n); + SPROUT_CONSTEXPR const_reference at(size_type n) const; + reference front(); + SPROUT_CONSTEXPR const_reference front() const; + reference back(); + SPROUT_CONSTEXPR const_reference back() const; + pointer data() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT; + pointer c_array() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer c_array() const SPROUT_NOEXCEPT; + }; diff --git a/docs/_sources/libs/string/basic_string/index.txt b/docs/_sources/libs/string/basic_string/index.txt new file mode 100644 index 00000000..614de280 --- /dev/null +++ b/docs/_sources/libs/string/basic_string/index.txt @@ -0,0 +1,402 @@ +.. _sprout-string-basic_string: +############################################################################### +basic_string +############################################################################### + +.. toctree:: + :hidden: + + constructor- + operator-assign + begin + end + rbegin + rend + cbegin + cend + crbegin + crend + size + length + max_size + resize + clear + empty + operator-subscript + at + front + back + assign + swap + data + c_array + data + find + rfind + find_first_of + find_last_of + find_first_not_of + find_last_not_of + substr + compare + operator-std-basic_string + operator-assign-iterator + assign-iterator + find-iterator + rfind-iterator + find_first_of-iterator + find_last_of-iterator + find_first_not_of-iterator + find_last_not_of-iterator + compare-iterator + +Interface +======================================== +.. sourcecode:: c++ + + template > + class basic_string; + +Description +======================================== + +Member types +---------------------------------------- + +======================================== =============================================================================== ======================================= +type definition note +======================================== =============================================================================== ======================================= +traits_type Traits +value_type Traits::char_type +size_type std::size_t +difference_type std::ptrdiff_t +reference value_type& +const_reference value_type const& +pointer value_type* +const_pointer value_type const* +iterator **ConstexprRandomAccessIterator** convertible to const_iterator, + convertible to pointer +const_iterator **ConstexprRandomAccessIterator** convertible to const_pointer +reverse_iterator sprout::reverse_iterator, + **ConstexprRandomAccessIterator** +const_reverse_iterator sprout::reverse_iterator, + **ConstexprRandomAccessIterator** +======================================== =============================================================================== ======================================= + +Member functions +---------------------------------------- + +construct/copy/destroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`(constructor) <./constructor->` +:doc:`operator= <./operator-assign>` +======================================== =============================================================================== + +iterators +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`begin <./begin>` +:doc:`end <./end>` +:doc:`rbegin <./rbegin>` +:doc:`rend <./rend>` +:doc:`cbegin <./cbegin>` +:doc:`cend <./cend>` +:doc:`crbegin <./crbegin>` +:doc:`crend <./crend>` +======================================== =============================================================================== + +capacity +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`size <./size>` +:doc:`length <./length>` +:doc:`max_size <./max_size>` +:doc:`resize <./resize>` +:doc:`clear <./clear>` +:doc:`empty <./empty>` +======================================== =============================================================================== + +element access +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`operator[] <./operator-subscript>` +:doc:`at <./at>` +:doc:`front <./front>` +:doc:`back <./back>` +======================================== =============================================================================== + +modifiers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`assign <./assign>` +:doc:`swap <./swap>` +======================================== =============================================================================== + +string operations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +============================================================ =============================================================================== +function +============================================================ =============================================================================== +:doc:`data <./data>` +:doc:`c_array <./c_array>` +:doc:`find <./find>` +:doc:`rfind <./rfind>` +:doc:`find_first_of <./find_first_of>` +:doc:`find_last_of <./find_last_of>` +:doc:`find_first_not_of <./find_first_not_of>` +:doc:`find_last_not_of <./find_last_not_of>` +:doc:`substr <./substr>` +:doc:`compare <./compare>` +============================================================ =============================================================================== + +conversions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +================================================================================ =============================================================================== +function +================================================================================ =============================================================================== +:doc:`operator std::basic_string <./operator-std-basic_string>` +================================================================================ =============================================================================== + +construct/copy/destroy (for string iterator) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +============================================================ =============================================================================== +function +============================================================ =============================================================================== +:doc:`operator= <./operator-assign-iterator>` +============================================================ =============================================================================== + +modifiers (for string iterator) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`assign <./assign-iterator>` +======================================== =============================================================================== + +string operations (for string iterator) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +============================================================ =============================================================================== +function +============================================================ =============================================================================== +:doc:`find <./find-iterator>` +:doc:`rfind <./rfind-iterator>` +:doc:`find_first_of <./find_first_of-iterator>` +:doc:`find_last_of <./find_last_of-iterator>` +:doc:`find_first_not_of <./find_first_not_of-iterator>` +:doc:`find_last_not_of <./find_last_not_of-iterator>` +:doc:`compare <./compare-iterator>` +============================================================ =============================================================================== + +Header +======================================== + +``sprout/string/string.hpp`` + +Convenience header: ``sprout/string.hpp`` + +Interface of all +======================================== +.. sourcecode:: c++ + + template > + class basic_string { + // types: + typedef Traits traits_type; + typedef typename Traits::char_type value_type; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef value_type& reference; + typedef value_type const& const_reference; + typedef value_type* pointer; + typedef value_type const* const_pointer; + typedef /*implementation-defined*/ iterator; + typedef /*implementation-defined*/ const_iterator; + typedef sprout::reverse_iterator reverse_iterator; + typedef sprout::reverse_iterator const_reverse_iterator; + + // constants: + SPROUT_STATIC_CONSTEXPR size_type npos = -1; + SPROUT_STATIC_CONSTEXPR size_type static_size = N; + + // construct/copy/destroy: + SPROUT_CONSTEXPR basic_string() = default; + SPROUT_CONSTEXPR basic_string(basic_string const&) = default; + template::type> + SPROUT_CONSTEXPR basic_string(basic_string const& str); + SPROUT_CONSTEXPR basic_string(basic_string const& str, size_type pos, size_type n = npos); + template::type> + SPROUT_CONSTEXPR basic_string(basic_string const& str, size_type pos, size_type n = npos); + template::type> + SPROUT_CONSTEXPR basic_string(T const(& arr)[N2]); + template::type> + SPROUT_CONSTEXPR basic_string(T const(& arr)[N2], size_type n); + explicit SPROUT_CONSTEXPR basic_string(value_type const* s); + SPROUT_CONSTEXPR basic_string(value_type const* s, size_type n); + template + SPROUT_CONSTEXPR basic_string(InputIterator first, InputIterator last); + basic_string(std::initializer_list il); + basic_string& operator=(basic_string const& rhs); + template::type> + basic_string& operator=(basic_string const& rhs); + basic_string& operator=(value_type const* rhs); + basic_string& operator=(value_type rhs); + + // iterators: + iterator begin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT; + iterator end() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT; + reverse_iterator rbegin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rbegin() const SPROUT_NOEXCEPT; + reverse_iterator rend() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crend() const SPROUT_NOEXCEPT; + + // capacity: + SPROUT_CONSTEXPR size_type size() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type length() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type max_size() const SPROUT_NOEXCEPT; + void resize(size_type n, value_type c); + void resize(size_type n); + void clear(); + SPROUT_CONSTEXPR bool empty() const SPROUT_NOEXCEPT; + + // element access: + reference operator[](size_type i); + SPROUT_CONSTEXPR const_reference operator[](size_type i) const; + reference at(size_type i); + SPROUT_CONSTEXPR const_reference at(size_type i) const; + reference front(); + SPROUT_CONSTEXPR const_reference front() const; + reference back(); + SPROUT_CONSTEXPR const_reference back() const; + + // modifiers: + template + basic_string& assign(basic_string const& str); + template + basic_string& assign(basic_string const& str, size_type pos, size_type n); + basic_string& assign(value_type const* s, size_type n); + basic_string& assign(value_type const* s); + basic_string& assign(size_type n, value_type c); + template + basic_string& assign(Iterator first, Iterator last); + void swap(basic_string& other) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::swap(std::declval(), std::declval()))); + + // string operations: + SPROUT_CONSTEXPR const_pointer c_str() const SPROUT_NOEXCEPT; + pointer data() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT; + pointer c_array() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer c_array() const SPROUT_NOEXCEPT; + template + SPROUT_CONSTEXPR size_type find(basic_string const& str, size_type pos = 0) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find(value_type const* s, size_type pos = 0) const; + SPROUT_CONSTEXPR size_type find(value_type c, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type rfind(basic_string const& str, size_type pos = npos) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type rfind(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type rfind(value_type const* s, size_type pos = npos) const; + SPROUT_CONSTEXPR size_type rfind(value_type c, size_type pos = npos) const; + template + SPROUT_CONSTEXPR size_type find_first_of(basic_string const& str, size_type pos = 0) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_first_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_first_of(value_type const* s, size_type pos = 0) const; + SPROUT_CONSTEXPR size_type find_first_of(value_type c, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_of(basic_string const& str, size_type pos = npos) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_last_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_last_of(value_type const* s, size_type pos = npos) const; + SPROUT_CONSTEXPR size_type find_last_of(value_type c, size_type pos = npos) const; + template + SPROUT_CONSTEXPR size_type find_first_not_of(basic_string const& str, size_type pos = 0) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_first_not_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_first_not_of(value_type const* s, size_type pos = 0) const; + SPROUT_CONSTEXPR size_type find_first_not_of(value_type c, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_not_of(basic_string const& str, size_type pos = npos) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_last_not_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_last_not_of(value_type const* s, size_type pos = npos) const; + SPROUT_CONSTEXPR size_type find_last_not_of(value_type c, size_type pos = npos) const; + SPROUT_CONSTEXPR basic_string substr(size_type pos = 0, size_type n = npos) const; + template + SPROUT_CONSTEXPR int compare(basic_string const& str) const; + SPROUT_CONSTEXPR int compare(value_type const* s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, basic_string const& str) const; + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, value_type const* s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, basic_string const& str, size_type pos2, size_type n2) const; + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, value_type const* s, size_type n2) const; + + // conversions: + template + SPROUT_EXPLICIT_CONVERSION operator std::basic_string() const; + + // construct/copy/destroy (for string iterator): + template + basic_string& operator=(StringConstIterator rhs); + + // modifiers (for string iterator): + template + basic_string& assign(StringConstIterator s, size_type n); + template + basic_string& assign(StringConstIterator s); + + // string operations (for string iterator): + template + SPROUT_CONSTEXPR size_type find(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type rfind(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type rfind(StringConstIterator s, size_type pos = npos) const; + template + SPROUT_CONSTEXPR size_type find_first_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_first_of(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_last_of(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_first_not_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_first_not_of(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_not_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_last_not_of(StringConstIterator s, size_type pos = npos) const; + template + SPROUT_CONSTEXPR int compare(StringConstIterator s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, StringConstIterator s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, StringConstIterator s, size_type n2) const; + }; diff --git a/docs/_sources/libs/string/char_traits/index.txt b/docs/_sources/libs/string/char_traits/index.txt index fea27220..7a50f628 100644 --- a/docs/_sources/libs/string/char_traits/index.txt +++ b/docs/_sources/libs/string/char_traits/index.txt @@ -32,52 +32,7 @@ Interface .. 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 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 char_type* move(char_type* s1, char_type const* s2, std::size_t n); - static char_type* copy(char_type* s1, char_type const* s2, std::size_t n); - static 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 OutputIterator move(OutputIterator s1, ConstInputIterator s2, std::size_t n); - template - static OutputIterator copy(OutputIterator s1, ConstInputIterator s2, std::size_t n); - template - static OutputIterator assign(OutputIterator s, std::size_t n, char_type a); - }; + struct char_traits; Description ======================================== @@ -157,3 +112,54 @@ Header 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 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 char_type* move(char_type* s1, char_type const* s2, std::size_t n); + static char_type* copy(char_type* s1, char_type const* s2, std::size_t n); + static 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 OutputIterator move(OutputIterator s1, ConstInputIterator s2, std::size_t n); + template + static OutputIterator copy(OutputIterator s1, ConstInputIterator s2, std::size_t n); + template + static OutputIterator assign(OutputIterator s, std::size_t n, char_type a); + }; diff --git a/docs/_sources/libs/string/index.txt b/docs/_sources/libs/string/index.txt index e8971e86..27905f99 100644 --- a/docs/_sources/libs/string/index.txt +++ b/docs/_sources/libs/string/index.txt @@ -7,6 +7,11 @@ Sprout.String :hidden: char_traits/index + basic_string/index + string + wstring + u16string + u32string basic_string/swap-global basic_string/operator-plus basic_string/operator-equal_to @@ -15,6 +20,40 @@ Sprout.String basic_string/operator-greater basic_string/operator-less_equal basic_string/operator-greater_equal + basic_string/operator-left_shift + basic_string/operator-right_shift + string_to_int + stoi + stol + stoul + stoll + stoull + stoimax + stoumax + from_string-inttype + string_to_float + stof + stod + stold + from_string-floattype + int_to_string + to_string_of-inttype + to_string-inttype + to_wstring-inttype + to_u16string-inttype + to_u32string-inttype + float_to_string + float_to_string_exp + to_string_of-floattype + to_string-floattype + to_wstring-floattype + to_u16string-floattype + to_u32string-floattype + to_string + string_from_c_str + make_string + shrink + stretch basic_string/std-tuple_size basic_string/std-tuple_element basic_string/tuple_get @@ -40,11 +79,19 @@ String classes class ============================================================ =============================================================================== :doc:`basic_string <./basic_string/index>` +============================================================ =============================================================================== + +basic_string aliases +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +aliases +======================================== =============================================================================== :doc:`string <./string>` :doc:`wstring <./wstring>` :doc:`u16string <./u16string>` :doc:`u32string <./u32string>` -============================================================ =============================================================================== +======================================== =============================================================================== Non-member functions ---------------------------------------- @@ -103,7 +150,6 @@ function :doc:`stoul <./stoul>` :doc:`stoll <./stoll>` :doc:`stoull <./stoull>` -:doc:`stoull <./stoull>` :doc:`stoimax <./stoimax>` :doc:`stoumax <./stoumax>` :doc:`from_string \ <./from_string-inttype>` diff --git a/docs/libs/array/array/at.html b/docs/libs/array/array/at.html index bdab90f0..94e82904 100644 --- a/docs/libs/array/array/at.html +++ b/docs/libs/array/array/at.html @@ -38,8 +38,8 @@ - - + + +
+

Interface of all

+
template <typename T, std::size_t N>
+class array {
+  // types:
+  typedef T& reference;
+  typedef T const& const_reference;
+  typedef /*implementation-defined*/ iterator;
+  typedef /*implementation-defined*/ const_iterator;
+  typedef std::size_t size_type;
+  typedef std::ptrdiff_t difference_type;
+  typedef T value_type;
+  typedef T* pointer;
+  typedef T const* const_pointer;
+  typedef sprout::reverse_iterator<iterator> reverse_iterator;
+  typedef sprout::reverse_iterator<const_iterator> const_reverse_iterator;
+
+  // constants:
+  SPROUT_STATIC_CONSTEXPR size_type static_size = N;
+
+  T elems[N ? N : 1]; // exposition only
+
+  // construct/copy/destroy:
+  template<typename T2>
+  array& operator=(array<T2, N> const& rhs);
+  template<typename T2>
+  array& operator=(array<T2, N>&& rhs);
+
+  // modifiers:
+  void fill(const_reference value);
+  SPROUT_CONSTEXPR array fill(const_reference value) const;
+  void assign(const_reference value);
+  SPROUT_CONSTEXPR array assign(const_reference value) const;
+  void swap(array&) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::swap(std::declval<T&>(), std::declval<T&>())));
+
+  // iterators:
+  iterator begin() SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT;
+  iterator end() SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT;
+  reverse_iterator rbegin() SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_reverse_iterator rbegin() const SPROUT_NOEXCEPT;
+  reverse_iterator rend() SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_reverse_iterator rend() const SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_reverse_iterator crbegin() const SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_reverse_iterator crend() const SPROUT_NOEXCEPT;
+
+  // capacity:
+  SPROUT_CONSTEXPR size_type size() const SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR size_type max_size() const SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR bool empty() const SPROUT_NOEXCEPT;
+
+  // element access:
+  reference operator[](size_type n);
+  SPROUT_CONSTEXPR const_reference operator[](size_type n) const;
+  reference at(size_type n);
+  SPROUT_CONSTEXPR const_reference at(size_type n) const;
+  reference front();
+  SPROUT_CONSTEXPR const_reference front() const;
+  reference back();
+  SPROUT_CONSTEXPR const_reference back() const;
+  pointer data() SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT;
+  pointer c_array() SPROUT_NOEXCEPT;
+  SPROUT_CONSTEXPR const_pointer c_array() const SPROUT_NOEXCEPT;
+};
+
+
+
diff --git a/docs/libs/array/array/operator-subscript.html b/docs/libs/array/array/operator-subscript.html index 1e646369..c418086f 100644 --- a/docs/libs/array/array/operator-subscript.html +++ b/docs/libs/array/array/operator-subscript.html @@ -38,8 +38,8 @@ - - + + +
+

Interface of all

+
template<typename Char>
+struct char_traits {
+  // types:
+  typedef typename std::char_traits<Char>::char_type char_type;
+  typedef typename std::char_traits<Char>::int_type int_type;
+  typedef typename std::char_traits<Char>::off_type off_type;
+  typedef typename std::char_traits<Char>::pos_type pos_type;
+  typedef typename std::char_traits<Char>::state_type state_type;
+
+  // character operations:
+  static 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 char_type* move(char_type* s1, char_type const* s2, std::size_t n);
+  static char_type* copy(char_type* s1, char_type const* s2, std::size_t n);
+  static 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<typename ConstInputIterator>
+  static SPROUT_CONSTEXPR int compare(char_type const* s1, ConstInputIterator s2, std::size_t n);
+  template<typename ConstInputIterator>
+  static SPROUT_CONSTEXPR int compare(ConstInputIterator s1, char_type const* s2, std::size_t n);
+  template<typename ConstInputIterator1, typename ConstInputIterator2>
+  static SPROUT_CONSTEXPR int compare(ConstInputIterator1 s1, ConstInputIterator2 s2, std::size_t n);
+  template<typename ConstInputIterator>
+  static SPROUT_CONSTEXPR std::size_t length(ConstInputIterator s);
+  template<typename ConstInputIterator>
+  static SPROUT_CONSTEXPR ConstInputIterator find(ConstInputIterator s, std::size_t n, char_type const& a);
+  template<typename OutputIterator, typename ConstInputIterator>
+  static OutputIterator move(OutputIterator s1, ConstInputIterator s2, std::size_t n);
+  template<typename OutputIterator, typename ConstInputIterator>
+  static OutputIterator copy(OutputIterator s1, ConstInputIterator s2, std::size_t n);
+  template<typename OutputIterator>
+  static OutputIterator assign(OutputIterator s, std::size_t n, char_type a);
+};
+
+
+
diff --git a/docs/libs/string/index.html b/docs/libs/string/index.html index aa30d729..bbe44bc7 100644 --- a/docs/libs/string/index.html +++ b/docs/libs/string/index.html @@ -65,7 +65,10 @@
  • Sprout.String
    • Description
      • Character traits
      • -
      • String classes
      • +
      • String classes +
      • Non-member functions
        • specialized algorithms
        • concatenations
        • @@ -155,23 +158,39 @@ -basic_string -  - -string -  - -wstring -  - -u16string -  - -u32string +basic_string   +
          +

          basic_string aliases

          + ++++ + + + + + + + + + + + + + + + + + + + +
          aliases 
          string 
          wstring 
          u16string 
          u32string 
          +

          Non-member functions

          @@ -300,31 +319,28 @@ stoull   -stoull +stoimax   -stoimax +stoumax   -stoumax +from_string <IntType>   -from_string <IntType> +string_to_float   -string_to_float +stof   -stof +stod   -stod +stold   -stold -  - -from_string <FloatType> +from_string <FloatType>   diff --git a/docs/searchindex.js b/docs/searchindex.js index 6ce29620..298cc60a 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{},terms:{all:[95,66,40,51,25,68,36],math_funct:73,definit:[17,18,99,82],prefix:[5,47],follow:[22,84,9,2,72,100,3,77,16,34,57,109,116,47,115,92,49,114],find_if:[47,2,21],value_typ:18,whose:106,"const":[0,1,29,60,85,3,61,32,33,23,89,6,53,63,64,41,36,105,37,9,39,112,65,12,43,55,44,45,46,47,97,92,69,102,95,13,94,74,75,76,77,91,50,16,110,18,19,20,79,54,93,80,111,24,98,25,66,78,56,81,82,115,83,117],tuple_el:[11,104,14,67],bind2nd:[2,40,34,62,47,7,101,109],compost:73,to_string_of:104,swap:[104,15,30,87,18,67],under:38,iterator_trait:[115,34],is_strictly_decreas:[26,21],sprout_no_cxx14_initializer_list:[56,43,54],everi:[95,101,65,116,40],count_if:[34,21],fals:[0,29,5,62,7,65,91,37,39,112,45,101,102,103,74,76,50,95,19,20,80,24,40,116],is_sorted_until:[21,8,10],result2:47,result1:47,util:73,facebook:38,element_typ:[11,14],syntax:[11,58,4,14,106],min_el:[22,21],one_of_equ:[102,21],list:[103,84,73,106,54,116],to_u16str:104,iter:[84,2,60,31,23,34,62,7,92,41,36,94,95,9,39,40,8,98,114,46,101,49,102,103,61,72,73,100,77,16,52,53,109,22,65,18,57,69,81,82,115,116],initializer_list:[56,43,54],upper:[16,66],impli:[36,66],find_end:[100,21],zero:[47,89,93,83],aggreg:106,odd:34,linear:[59,1,107,94,15,30,83,12,42,98,108,44,52,117,79,35,8,87,105],compat:73,index:[89,93],compar:[22,16,9,96,52,10,83,3,31,43,5,66,56,54,47,82,79,8,36,49],neg:[83,77],brief:38,access:[103,18,116],inputiterator1:[5,47,84,72,116],inputiterator2:[5,47,84,116],version:[47,38,97,98,75],boost:38,hash:[104,44,99,17,67,117],gener:[104,73,44,99,17,67,117],satisfi:36,path:38,becom:64,modifi:[18,21],valu:[4,3,115,92,65,36,14,95,9,39,66,11,43,99,44,114,100,47,102,103,72,75,77,16,17,56,54,97,113,18,57,28,58,83,117],search:[57,36,21],convers:104,checksum:73,larger:[31,56],none_of_equ:[65,21],is_heap_until:[52,96,21],implement:[54,18,43,56],instal:38,txt:38,make_arrai:[51,68,67],pos_typ:82,range_numer:73,from:[117,2,72,17,100,25,77,99,113,44,34,57,28,115,92,109,114],would:103,pred:[103,84,2,72,40,100,77,34,57,116,62,7,101,109,114],two:[5,47,3],websit:38,program:[11,89,93,14],call:[44,87,93,117,89],type:[4,106,14,56,44,11,117,3,73,43,99,77,51,17,18,28,113,82,58,68,54],until:[52,8],sort:[21,8,10],cwchar:73,mismatch:[84,21],int_to_str:104,hold:[22,84,9,2,72,100,3,77,16,34,57,109,116,115,92,49,114],logarithm:[0,84,29,103,86,31,88,98,5,34,62,2,7,92,8,36,94,37,9,96,39,77,10,65,12,43,44,114,109,47,101,49,102,70,72,74,100,76,107,40,91,50,16,45,56,95,19,20,79,54,22,24,26,112,66,52,57,115,83,117,116],high:3,none:[101,65],can:[38,64,106],meet:[17,116,99,103],input2:[103,84,72,100,5,57,47,116],off_typ:82,input1:[103,84,2,72,100,77,5,57,47,92,109,116],give:[38,3],templat:[0,4,29,30,64,86,3,31,84,98,5,89,34,62,2,7,35,8,36,72,37,9,96,39,77,10,11,65,42,43,99,44,103,114,109,47,88,68,49,102,70,92,14,15,73,74,100,76,107,40,91,50,16,17,45,18,95,19,20,93,108,54,82,22,51,101,24,52,25,26,112,66,78,56,57,58,115,83,117,116],hash_rang:[17,117,99,44],minimum:21,stoll:104,stold:104,string:[59,1,29,104,30,89,90,64,94,35,107,110,112,12,42,98,44,48,71,14,73,50,17,105,82,20,79,108,24,27,45,113,28,58,83,118],alwai:[61,41,60,81],gcc:38,end:[84,2,103,86,31,88,5,34,62,115,92,65,7,95,9,96,39,10,8,36,114,47,101,49,102,70,87,72,100,77,16,52,78,109,22,26,40,66,18,57,69,116],find_if_not:[109,21],constinputiterator1:[82,83],constinputiterator2:[82,83],basic_str:[104,64,29,14,112,44,30,50,89,17,45,20,24,58],"void":[97,15,30,75,87,18,82,110],make_common_arrai:[68,67],max:[22,13,31,56,54,49,21],after:[41,60,69,46],variant:73,mai:3,const_iter:[23,18,41,81,69],stol:104,github:38,inttyp:104,japanes:38,correspond:[84,2,3,31,5,34,115,92,36,9,54,47,49,103,72,100,77,16,109,22,114,57,116],element:[2,60,30,31,32,33,5,89,34,6,63,92,41,36,72,9,66,11,93,85,46,47,68,49,103,61,13,14,15,16,18,106,53,109,22,23,55,51,25,111,114,69,81,115,87],caus:55,callabl:[44,93,117,89],worst:103,first:[84,2,86,31,88,23,34,62,6,7,92,8,36,95,9,96,39,10,65,43,114,109,47,101,49,102,70,61,72,63,77,16,56,53,54,22,5,111,26,40,66,52,57,81,115],string_from_c_str:104,ith:[89,93],sprout:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],move:[42,89,105,78,82,93],becaus:[44,93,117,89],increas:[86,88],through:38,binarypred:[103,84,72,100,77,114,57,116],pointer:[111,18,98,6],equiv:47,shorter:[5,47],tristate_lexicographical_compar:[47,21],uuid:73,fix:73,decai:68,mail:38,non:[104,77,5,67,47,21],"return":[0,2,3,23,6,7,8,9,10,12,90,94,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,100,76,77,78,79,80,81,83,84,85,86,88,89,13,91,92,93,95,96,97,98,75,101,102,103,107,109,111,112,113,114,115,116,117,118],greater:[70,24,74,50,62,19,47,2,7,101],nonneg:[100,57],auto:[0,2,3,23,6,7,8,9,10,12,90,94,15,16,17,19,20,22,5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,49,50,51,56,53,54,55,52,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,91,92,93,95,96,97,98,99,100,101,102,103,106,107,108,109,111,112,113,114,115,116,117,118],initi:[51,68,18,54,106],bound:[9,55,14,66,11,33,16,89,93],front:[63,18],oper:[0,29,78,104,20,91,64,37,112,99,67,73,74,76,50,17,18,19,55,21,24,45,82],from_str:104,lexicographical_compar:[5,21],revers:[53,61,60,46],separ:106,mode:38,each:[38,87,15,30,42,114,35,83,108],found:[84,2,72,100,77,98,114,57,92,36,109,94],compil:[38,73],adjacent_find:[114,21],domain:73,individu:38,"static":[90,59,1,71,94,113,107,27,42,98,48,110,105,28,118,82,79,35,83,12,108],madocchi:[1,29,30,112,50,24,105,42,20,79,35,83],logn:[0,84,29,103,86,31,88,98,5,34,62,2,7,92,8,36,94,37,9,96,39,77,10,65,12,43,44,114,109,47,101,49,102,70,72,74,100,76,107,40,91,50,16,45,56,95,19,20,79,54,22,24,26,112,66,52,57,115,83,117,116],special:[104,67],out:[55,14,11,33,89,93],all_of_equ:[95,66,21],categori:73,typenam:[0,4,29,30,64,86,3,31,84,98,5,89,34,62,2,7,35,8,36,72,37,9,96,39,77,10,11,65,42,43,99,44,103,114,109,47,88,68,49,102,70,92,14,15,74,100,76,107,40,91,50,16,17,45,18,95,19,20,93,108,54,82,22,51,101,24,52,25,26,112,66,78,56,57,58,115,83,117,116],inputiter:[95,101,2,39,40,34,62,7,92,65,115,109,102],integr:[58,4,77],log2:[16,9,36,66],forwarditerator2:[100,57,72,103],forwarditerator1:[100,57,103],standard:73,base:[38,93,89],org:38,upper_bound:[16,66,21],length:[82,12,64,107,73],string_to_float:104,one_of:[62,21],homuhomu:[59,1,29,30,89,35,107,112,12,42,98,44,94,50,17,105,20,79,108,24,45,83],assign:[59,110,97,42,18,82,35,108],tuple_s:[58,4,104,67],origin:[28,113],softwar:38,rang:[84,2,31,5,34,62,115,92,65,7,95,9,39,40,8,42,36,47,101,49,102,103,72,100,77,16,52,109,22,66,114,57,116],declval:[18,87],arrai:[0,4,2,52,30,86,3,31,32,70,33,23,34,62,99,6,7,92,8,63,60,37,9,96,39,106,10,11,41,85,43,84,36,103,114,109,102,46,47,97,88,68,49,100,67,61,13,72,15,73,74,75,76,65,77,91,80,16,18,95,19,53,93,54,22,5,101,55,51,25,111,26,40,66,78,56,57,69,81,115,87,117,116],number:[38,13,3,32,5,34,47,115,64],cinttyp:73,smaller:[31,43,54],max_el:[49,21],lexicograph:[0,24,112,74,76,50,5,19,47,29,21],size:[80,4,77,13,56,73,32,43,51,18,58,68,54],given:[103,84,116],rightmost:54,data:[111,18,6,73],licens:38,cstring:73,capac:18,construct:18,conveni:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118],store:[64,73],to_hash:[44,117],darkroom:73,namespac:[0,1,2,3,4,5,6,7,8,9,10,11,12,90,14,15,16,17,19,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,56,53,54,55,52,57,58,59,60,61,62,63,64,65,66,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118],copi:[38,1,56,25,42,43,105,18,78,82,35,54],specifi:[55,43,33,51,56,54],pars:[38,73],c_arrai:[111,18],first1:[103,84,72,100,5,57,47,116],first2:[103,84,72,100,5,57,47,116],exactli:[22,103,3,34,49,115,54,114],state_typ:82,than:[0,29,5,62,2,7,112,54,47,101,74,76,77,50,19,79,109,24,27,40,57,83],std:[0,59,1,29,104,30,78,4,33,89,34,90,115,35,93,91,105,94,37,64,107,110,112,11,12,42,43,99,44,45,67,98,48,87,71,14,15,74,75,76,50,17,18,19,20,79,108,54,82,24,25,27,97,113,56,28,58,83,117,118],to_int_typ:[82,28,113],second:[84,31,54,66],structur:73,charact:[82,104],project:38,posit:[84,2,60,31,33,89,92,41,94,9,66,8,98,46,69,72,100,77,16,52,93,109,22,55,114,57,49,83],to_wstr:104,pre:[1,35],rend:[18,46],argument:[103,84,64,43,51,56,68,54,116],int_typ:[71,113,28,82,48,118],rai:[38,73],have:[5,47],need:51,predic:[84,2,31,34,62,7,92,65,115,95,39,40,54,101,102,103,72,100,77,109,114,57,116],constexprrandomaccessiter:18,option:73,built:25,equival:[59,1,5,89,90,91,93,37,110,45,12,43,99,44,47,48,71,94,17,56,20,79,54,27,113,105,28,117,118],min:[22,84,31,43,5,114,54,47,116,49,21],greater_equ:26,destroi:18,note:[44,18,93,117,89],also:[36,66],without:[75,97],which:[38,84,2,52,34,115,92,8,109,114],equal_rang:[66,21],const_refer:[55,85,75,97,33,18,63],sprout_noexcept:[90,60,61,32,23,89,6,71,93,41,46,48,69,13,111,18,53,80,27,113,28,81,82,118],even:42,begin:[84,2,97,103,86,31,88,23,34,62,7,35,8,36,95,9,96,39,10,65,42,98,114,100,47,101,49,102,70,87,92,72,75,77,16,52,78,107,108,109,22,5,26,40,66,18,57,115,83,116],unless:[87,15,30],distribut:38,trace:[38,73],shall:[16,9,77,54,66],buffer:[64,73],object:[51,73,68,25],size_typ:[55,18,13,32,33],pair:[84,66,31,5,47,54],crbegin:[61,18],madohomu:64,"class":[104,73,99,17,18,67],slideshar:38,accompani:38,binary_search:[36,21],random:[38,103,116,73],rbegin:[53,18],all_of:[40,21],find:[72,100,77,98,57,82,92,94,21],onli:[38,18,62,102],explicitli:51,copyright:38,swap_rang:87,get:[89,93],lower_bound:[66,9,21],make_str:104,express:[4,9,94,66,12,16,58,79,36],clang:38,range_adaptor:73,stoi:104,stod:104,none_of:[101,21],stof:104,is_sort:[70,10,86,88,26,21],requir:[103,89,9,14,66,11,3,43,99,77,16,17,56,93,36,54,116],synthes:[38,73],yield:[5,47],common:68,partit:[16,9,36,66],contain:[84,2,103,86,31,32,5,34,62,6,7,92,8,36,37,38,9,96,39,10,65,45,47,101,49,102,70,13,72,73,95,100,77,91,88,16,52,20,109,22,111,26,40,66,114,57,115,116],comma:106,where:[103,42,31,89,114,106,93,54],valid:[44,93,117,89],wiki:38,arr:25,set:72,cstdio:48,minmax:[54,21],see:38,result:[84,2,103,86,3,31,88,98,5,34,62,90,7,64,8,36,94,95,9,96,39,10,65,12,43,114,109,47,92,101,49,102,70,71,72,100,77,16,56,107,79,54,22,26,27,40,113,66,52,57,28,115,116,83,118],arg:[51,68],hash_valu:[44,104,117,67],any_of_equ:[39,21],modulu:34,correctli:42,eq_int_typ:[82,71,28,113],less_equ:86,smallest:[107,43,54,98],neither:[5,47],paramet:51,numer:[104,73],comp:[22,16,9,96,52,10,3,31,43,5,66,56,54,47,8,36,49],crend:[18,60],typedef:[82,18],cbegin:[18,41,81],constexpr:[38,56,43,54],type_trait:[11,14,73],preprocessor:73,randomaccessiter:[52,96],struct:[4,14,11,99,17,58,82],both:114,metaprogram:73,last:[2,60,85,86,31,88,34,62,115,92,65,7,95,9,96,39,10,8,36,46,101,49,102,70,100,77,16,52,109,22,26,40,66,114,69,41],delimit:47,ill:[11,89,93,14],equal:[103,90,91,92,65,115,37,39,112,45,102,95,71,72,74,100,76,77,50,20,21,66,113,114,57,28,116],range_algorithm:73,char_trait:[59,1,71,35,107,110,12,42,98,48,90,94,105,79,108,104,27,113,28,82,83,118],bitset:73,static_s:18,stoumax:104,point:[38,3],header:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],permut:103,is_permut:[103,21],respect:[16,9,36,66],minmax_el:[31,21],difference_typ:[115,18,34],stretch:104,empti:[80,95,39,40,100,31,5,18,57,102,47,62,7,101,65,72],unexpect:3,cend:18,remark:[51,84,68,55,103,3,43,98,5,56,106,47,64,54,116],ani:[22,16,9,39,100,77,5,57,47,7,49],assert:[59,1,97,15,30,75,42,105,35,87,108,110],sprout_noexcept_expr:[18,87,15,30],tuple_get:[89,93,104,67],"case":[75,97],u32str:104,ident:3,defin:[89,43,5,44,18,56,117,47,93,54],sprout_constexpr:[0,2,3,23,6,7,8,9,10,12,90,94,16,18,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,68,69,70,71,72,74,100,76,77,79,80,81,82,83,84,85,86,88,89,13,91,92,93,95,96,97,98,75,101,102,103,107,109,111,112,113,114,115,116,117,118],behavior:55,furthermost:[16,9],exist:103,invoc:[0,2,23,6,7,8,9,10,12,90,94,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,60,61,62,63,64,65,66,68,69,70,71,72,74,100,76,77,79,80,81,83,84,85,86,88,89,13,91,92,93,95,96,97,98,75,101,102,103,106,107,109,111,112,113,114,115,116,117,118],bolero:38,cctype:73,floattyp:104,sever:[56,43,54],welcom:38,author:38,perform:[35,42,108],alphabet:73,murakami:38,same:[70,25,26,88,5,89,86,47,93],member:[104,99,17,18,67,82],binari:[36,21],complex:[0,1,2,3,23,6,7,8,9,10,12,90,94,15,16,19,20,22,5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,59,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,79,80,81,83,84,85,86,87,88,89,13,91,92,93,95,96,97,98,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118],largest:[64,56,54],document:38,http:38,effect:[59,1,72,15,30,75,42,77,100,105,57,78,97,35,87,108,110],weed:73,stoul:104,lower:[9,66],elem:18,is_heap:[96,21],exampl:[0,1,2,3,4,5,6,7,8,9,10,11,12,90,14,15,16,17,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118],thi:[38,43,98,51,56,78,54],undefin:55,sprout_static_constexpr:[0,1,2,3,23,6,7,8,9,10,12,90,94,16,17,18,19,20,22,5,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,79,80,81,83,84,85,86,88,89,13,91,92,93,95,96,97,98,99,100,101,102,103,105,106,107,109,110,111,112,113,114,115,116,117,118],bit_oper:73,distanc:[103,94,31,98,52,8],less:[0,29,40,27,112,77,88,5,57,47,79,83,76,109],nan:3,license_1_0:38,float_to_str:104,is_strictly_increas:[86,21],float_to_string_exp:104,static_assert:[0,2,3,23,6,7,8,9,10,11,12,90,14,16,17,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,79,80,81,83,84,85,86,88,89,13,91,92,93,94,95,96,97,98,99,100,101,102,103,107,109,111,112,113,114,115,116,117,118],miscellan:73,size_t:[0,59,1,29,30,4,89,91,35,93,94,37,64,107,112,11,12,42,98,99,44,14,15,74,76,50,17,18,19,20,79,108,82,24,25,45,105,58,83,117],except:[87,15,30],blog:38,exposit:18,input:[2,60,85,86,3,31,32,33,23,89,34,62,6,7,92,8,36,95,9,96,39,40,41,43,99,44,114,109,46,101,49,102,70,61,13,88,63,80,16,17,56,106,53,93,54,22,111,55,65,26,10,66,52,69,81,115,117],adl:[44,93,117,89],subsequ:[100,57,77],match:72,applic:[84,2,31,5,34,62,7,92,65,115,95,39,40,109,47,101,49,102,103,72,100,77,54,22,114,57,116],wstring:104,is_increas:[88,21],recurs:[0,2,23,6,7,8,9,10,12,90,94,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,60,61,62,63,64,65,66,68,69,70,71,72,74,100,76,77,79,80,81,83,84,85,86,88,89,13,91,92,93,95,96,97,98,75,101,102,103,106,107,109,111,112,113,114,115,116,117,118],insert:104,like:73,specif:73,integ:[82,57,77,100],noth:[87,15,30],char_typ:[59,1,90,94,27,107,98,108,105,28,82,79,113,83,12,110],page:38,www:38,homu:64,twitter:38,linux:38,some:[83,72],back:[111,18,6,85],last1:[103,84,72,100,5,57,47,116],last2:[103,84,72,100,5,57,47,116],sizeof:[51,68],make_pair:[31,66],librari:[38,73],not_eof:[82,118],common_decai:68,overlap:42,mathemat:73,const_point:[111,18,6],nonempti:114,condit:[22,84,9,2,72,100,3,77,16,1,34,109,116,57,115,35,92,36,49,114],leftmost:[56,43,54],content:[37,0,29,112,74,38,76,19,50,45,20,24,91],refer:[55,85,31,33,89,18,63,93],ration:73,stoimax:104,index_tupl:73,repositori:38,lessthancompar:[3,56,43,54],sprout_assert_msg:[59,1,97,15,30,75,42,105,35,87,108,110],"throw":[33,87,15,30],comparison:[0,29,3,5,104,91,36,37,9,112,45,67,47,49,74,76,50,16,19,20,54,21,22,24,66],most:[84,2,31,5,62,7,92,65,36,95,9,39,40,109,47,101,102,72,100,77,16,54,66,57,116],delim1:47,delim2:47,find_first_of:[72,21],includ:[0,1,2,3,4,5,6,7,8,9,10,11,12,90,14,15,16,17,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118],ptrdiff_t:18,string_to_int:104,search_n:[77,21],any_of:[7,21],clamp:[3,21],"float":3,fill_n:[75,97],forwarditer:[22,70,9,10,26,31,77,88,16,66,114,86,8,36,49],cstdlib:73,u16str:104,fill:[75,59,18,108,97],support:[38,104,73,43,56,67,54],transform:47,out_of_rang:33,start:38,compliant:73,interfac:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,107,108,109,110,111,112,113,114,115,116,117,118],low:3,strictli:[26,86],const_reverse_iter:[61,53,18,60,46],"function":[0,2,23,6,7,8,9,10,12,90,94,16,17,18,19,20,21,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,88,89,13,91,92,93,95,96,97,98,99,100,101,102,103,104,106,107,109,111,112,113,114,115,116,117,118],form:[11,89,93,14],tupl:[4,104,14,73,11,89,67,58,93,117],is_sam:[11,14],link:38,heap:[52,96,21],inlin:[0,84,29,30,86,3,31,88,5,89,34,62,2,7,64,8,36,37,9,96,39,77,10,65,43,44,103,114,109,47,68,49,102,70,92,72,15,74,100,76,40,91,50,16,45,56,95,19,20,93,54,22,51,101,24,25,26,112,66,52,57,115,117,116],"true":[0,29,103,5,62,91,65,7,37,107,39,112,98,36,45,101,102,95,74,76,50,19,20,80,24,40,83,116],longer:[5,47],count:[115,34,77,21],concaten:[64,104],wise:87,mado:64,maximum:21,is_decreas:[70,21],below:[103,84,116],extractor:104,to_char_typ:[82,28,113],otherwis:[0,29,103,3,31,5,62,7,65,91,37,39,112,8,98,45,47,101,102,95,74,76,50,52,19,20,54,80,24,40,57,83,116],constant:[90,4,60,85,61,32,33,23,89,6,71,63,64,41,110,97,93,12,46,68,48,69,13,94,75,51,18,106,53,79,80,111,55,25,27,113,28,81,58,118],sub_arrai:73,"int":[0,4,2,60,85,86,3,31,32,33,23,34,62,99,6,71,7,92,8,63,37,9,96,39,106,10,11,41,43,84,36,103,114,109,102,46,47,97,88,101,49,100,69,70,61,13,72,15,74,75,76,65,77,91,80,16,56,95,19,53,79,54,93,22,5,55,51,25,111,26,40,113,66,78,52,57,28,81,82,115,87,83,117,116],to_arrai:[67,25],matafunct:[104,67],"char":[59,1,71,35,94,107,110,12,42,98,48,90,14,105,79,108,27,113,28,82,83,118],decreas:[26,70],file:38,adjac:114,pit:73,constinputiter:[107,42,98,82,35,83],denot:[103,84,116],copyconstruct:[56,43,54],floor:31,hpp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],when:[56,43,54,98],other:[5,38,47,114],bool:[0,29,103,86,88,5,62,90,7,65,36,37,96,39,10,45,101,102,70,71,74,76,40,91,50,18,95,19,20,80,24,26,27,112,82,116],trait:[104,64,29,14,112,44,30,50,89,17,45,20,24,58],shrink:104,sequenc:[73,100,77,5,57,47,21],stoull:104,max_siz:[18,13],outputiter:[82,35,42,108],to_u32str:104,concat:64,eof:[82,48,118],algorithm:[84,2,103,86,3,31,88,5,34,62,7,92,8,36,95,38,9,96,39,10,65,43,114,109,67,47,101,49,102,70,72,73,100,77,16,56,54,21,22,104,26,40,66,52,57,115,116],reverse_iter:[53,18,46],directori:38,descript:[38,104,99,17,18,67,82],to_str:104,depth:[0,2,23,6,7,8,9,10,12,90,94,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,60,61,62,63,64,65,66,68,69,70,71,72,74,100,76,77,79,80,81,83,84,85,86,88,89,13,91,92,93,95,96,97,98,75,101,102,103,106,107,109,111,112,113,114,115,116,117,118],time:73,convert:[18,113,28,106,77]},objtypes:{},titles:["operator<","copy","find_if","clamp","std::tuple_size","lexicographical_compare","back","any_of","is_sorted_until","lower_bound","is_sorted","std::tuple_element","length","max_size","std::tuple_element","swap","upper_bound","std::hash","array","operator>","operator!=","Sprout.Algorithm","min_element","begin","operator>","to_array","is_strictly_decreasing","lt","to_char_type","operator<","swap","minmax_element","size","at","count_if","copy","binary_search","operator!=","Sprout C++ Libraries","any_of_equal","all_of","cbegin","move","min","hash_value","operator==","rend","tristate_lexicographical_compare","eof","max_element","operator>=","make_array","is_heap_until","rbegin","minmax","operator[]","max","search","std::tuple_size","assign","crend","crbegin","one_of","front","operator+","none_of_equal","equal_range","Sprout.Array","make_common_array","end","is_decreasing","eq_int_type","find_first_of","Libraries","operator>=","fill","operator<=","search_n","operator=","compare","empty","cbegin","char_traits","compare","mismatch","back","is_strictly_increasing","swap","is_increasing","tuple_get","eq","operator==","find","tuple_get","find","all_of_equal","is_heap","assign","find","std::hash","find_end","none_of","one_of_equal","is_permutation","Sprout.String","move","(initializer)","length","assign","find_if_not","assign","back","operator<=","to_int_type","adjacent_find","count","equal","hash_value","not_eof"],objnames:{},filenames:["libs/array/array/operator-less","libs/string/char_traits/copy","libs/algorithm/find_if","libs/algorithm/clamp","libs/array/array/std-tuple_size","libs/algorithm/lexicographical_compare","libs/array/array/data","libs/algorithm/any_of","libs/algorithm/is_sorted_until","libs/algorithm/lower_bound","libs/algorithm/is_sorted","libs/array/array/std-tuple_element","libs/string/char_traits/length","libs/array/array/max_size","libs/string/basic_string/std-tuple_element","libs/array/array/swap-global","libs/algorithm/upper_bound","libs/string/basic_string/std-hash","libs/array/array/index","libs/array/array/operator-greater","libs/string/basic_string/operator-not_equal_to","libs/algorithm/index","libs/algorithm/min_element","libs/array/array/begin","libs/string/basic_string/operator-greater","libs/array/to_array","libs/algorithm/is_strictly_decreasing","libs/string/char_traits/lt","libs/string/char_traits/to_char_type","libs/string/basic_string/operator-less","libs/string/basic_string/swap-global","libs/algorithm/minmax_element","libs/array/array/size","libs/array/array/at","libs/algorithm/count_if","libs/string/char_traits/copy-iterator","libs/algorithm/binary_search","libs/array/array/operator-not_equal_to","index","libs/algorithm/any_of_equal","libs/algorithm/all_of","libs/array/array/cend","libs/string/char_traits/move-iterator","libs/algorithm/min","libs/string/basic_string/hash_value","libs/string/basic_string/operator-equal_to","libs/array/array/rend","libs/algorithm/tristate_lexicographical_compare","libs/string/char_traits/eof","libs/algorithm/max_element","libs/string/basic_string/operator-greater_equal","libs/array/make_array","libs/algorithm/is_heap_until","libs/array/array/rbegin","libs/algorithm/minmax","libs/array/array/operator-subscript","libs/algorithm/max","libs/algorithm/search","libs/string/basic_string/std-tuple_size","libs/string/char_traits/assign-string","libs/array/array/crend","libs/array/array/crbegin","libs/algorithm/one_of","libs/array/array/front","libs/string/basic_string/operator-plus","libs/algorithm/none_of_equal","libs/algorithm/equal_range","libs/array/index","libs/array/make_common_array","libs/array/array/end","libs/algorithm/is_decreasing","libs/string/char_traits/eq_int_type","libs/algorithm/find_first_of","libs/index","libs/array/array/operator-greater_equal","libs/array/array/fill","libs/array/array/operator-less_equal","libs/algorithm/search_n","libs/array/array/operator-assign","libs/string/char_traits/compare","libs/array/array/empty","libs/array/array/cbegin","libs/string/char_traits/index","libs/string/char_traits/compare-iterator","libs/algorithm/mismatch","libs/array/array/back","libs/algorithm/is_strictly_increasing","libs/array/array/swap","libs/algorithm/is_increasing","libs/string/basic_string/tuple_get","libs/string/char_traits/eq","libs/array/array/operator-equal_to","libs/algorithm/find","libs/array/array/tuple_get","libs/string/char_traits/find","libs/algorithm/all_of_equal","libs/algorithm/is_heap","libs/array/array/assign","libs/string/char_traits/find-iterator","libs/array/array/std-hash","libs/algorithm/find_end","libs/algorithm/none_of","libs/algorithm/one_of_equal","libs/algorithm/is_permutation","libs/string/index","libs/string/char_traits/move","libs/array/array/initializer-","libs/string/char_traits/length-iterator","libs/string/char_traits/assign-iterator","libs/algorithm/find_if_not","libs/string/char_traits/assign","libs/array/array/c_array","libs/string/basic_string/operator-less_equal","libs/string/char_traits/to_int_type","libs/algorithm/adjacent_find","libs/algorithm/count","libs/algorithm/equal","libs/array/array/hash_value","libs/string/char_traits/not_eof"]}) \ No newline at end of file +Search.setIndex({objects:{},terms:{all:[96,40,66,51,18,25,90,82,68,36],math_funct:73,definit:[17,18,100,90,82],prefix:[5,47],follow:[22,84,9,2,72,101,3,77,16,34,57,110,117,47,116,93,49,115],find_if:[47,2,21],value_typ:[18,90],whose:107,"const":[0,1,29,60,85,3,61,32,33,23,89,6,53,63,64,41,36,106,37,9,39,113,65,12,43,55,44,45,46,47,98,93,69,103,96,13,95,74,75,76,77,92,50,16,111,18,90,19,20,79,54,94,80,112,24,99,25,66,78,56,81,82,116,83,118],tuple_el:[11,105,14,67],bind2nd:[2,40,34,62,47,7,102,110],compost:73,to_string_of:105,swap:[105,15,30,87,18,90,67],under:38,iterator_trait:[116,34],is_strictly_decreas:[26,21],sprout_no_cxx14_initializer_list:[56,43,54],everi:[96,102,65,117,40],count_if:[34,21],fals:[0,29,5,62,7,65,92,37,39,113,45,102,103,104,74,76,50,96,19,20,80,24,40,117],is_sorted_until:[21,8,10],result2:47,result1:47,util:73,facebook:38,element_typ:[11,14],syntax:[11,58,4,14,107],min_el:[22,21],one_of_equ:[103,21],list:[104,84,73,107,54,117],to_u16str:105,iter:[84,2,60,31,23,34,62,90,7,93,41,36,95,96,9,39,40,8,99,115,46,102,49,103,104,61,72,73,101,77,16,52,53,110,22,65,18,57,69,81,82,116,117],initializer_list:[90,56,43,54],upper:[16,66],impli:[36,66],find_end:[101,21],zero:[47,89,94,83],aggreg:107,odd:34,linear:[59,1,108,95,15,30,83,12,42,99,109,44,52,118,79,35,8,87,106],compat:73,index:[89,94],compar:[22,16,9,97,52,10,83,3,31,43,5,66,56,54,90,47,82,79,8,36,49],neg:[83,77],brief:38,access:[104,18,90,117],inputiterator1:[5,47,84,72,117],inputiterator2:[5,47,84,117],version:[47,38,98,99,75],boost:38,hash:[105,44,100,17,67,118],gener:[105,73,44,100,17,67,118],satisfi:36,path:38,becom:64,modifi:[18,90,21],valu:[4,3,116,93,65,36,14,96,9,39,66,11,43,100,44,115,101,47,103,104,72,75,77,16,17,56,54,98,114,18,57,28,58,83,118],search:[57,36,21],convers:[105,90],checksum:73,larger:[31,56],none_of_equ:[65,21],is_heap_until:[52,97,21],implement:[54,90,18,43,56],traits_typ:90,find_last_not_of:90,substr:90,instal:38,txt:38,make_arrai:[51,68,67],pos_typ:82,range_numer:73,from:[118,2,72,17,101,25,77,100,114,44,34,57,28,116,93,110,115],would:104,pred:[104,84,2,72,40,101,77,34,57,117,62,7,102,110,115],two:[5,47,3],websit:38,program:[11,89,94,14],call:[44,87,94,118,89],type:[4,3,90,11,43,100,44,68,14,73,77,51,17,56,107,58,54,114,18,28,82,118],until:[52,8],sort:[21,8,10],cwchar:73,mismatch:[84,21],int_to_str:105,hold:[22,84,9,2,72,101,3,77,16,34,57,110,117,116,93,49,115],logarithm:[0,84,29,104,86,31,88,99,5,34,62,2,7,93,8,36,95,37,9,97,39,77,10,65,12,43,44,115,110,47,102,49,103,70,72,74,101,76,108,40,92,50,16,45,56,96,19,20,79,54,22,24,26,113,66,52,57,116,83,118,117],high:3,none:[102,65],enable_if:90,can:[38,64,107],meet:[17,117,100,104],input2:[104,84,72,101,5,57,47,117],off_typ:82,input1:[104,84,2,72,101,77,5,57,47,93,110,117],give:[38,3],templat:[0,4,29,30,64,86,3,31,84,99,5,89,34,62,90,2,7,35,8,36,72,37,9,97,39,77,10,11,65,42,43,100,44,104,115,110,47,88,68,49,103,70,93,14,15,73,74,101,76,108,40,92,50,16,17,45,18,96,19,20,94,109,54,82,22,51,102,24,52,25,26,113,66,78,56,57,58,116,83,118,117],hash_rang:[17,118,100,44],minimum:21,stoll:105,stold:105,string:[59,1,29,105,30,89,90,91,64,95,35,108,111,113,12,42,99,44,48,71,14,73,50,17,106,82,20,79,109,24,27,45,114,28,58,83,119],alwai:[61,41,60,81],gcc:38,end:[84,2,104,86,31,88,5,34,62,90,116,93,65,7,96,9,97,39,10,8,36,115,47,102,49,103,70,87,72,101,77,16,52,78,110,22,26,40,66,18,57,69,117],find_if_not:[110,21],constinputiterator1:[82,83],constinputiterator2:[82,83],basic_str:[105,64,29,14,113,44,30,50,89,17,45,90,20,24,58],"void":[98,15,30,75,87,18,90,82,111],npo:90,make_common_arrai:[68,67],max:[22,13,31,56,54,49,21],after:[41,60,69,46],variant:73,mai:3,const_iter:[81,23,18,90,41,69],stol:105,alloc:90,github:38,inttyp:105,japanes:38,explicit:90,correspond:[84,2,3,31,5,34,116,93,36,9,54,47,49,104,72,101,77,16,110,22,115,57,117],element:[2,60,30,31,32,33,5,89,34,6,63,93,41,36,72,9,66,11,94,85,46,47,68,49,104,61,13,14,15,16,18,90,107,53,110,22,23,55,51,25,112,115,69,81,116,87],caus:55,alias:105,callabl:[44,94,118,89],worst:104,tuple_s:[58,4,105,67],string_from_c_str:105,ith:[89,94],sprout:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],move:[42,89,106,78,82,94],becaus:[44,94,118,89],increas:[86,88],through:38,binarypred:[104,84,72,101,77,115,57,117],pointer:[112,18,90,6,99],equiv:47,member:[105,100,17,18,90,67,82],tristate_lexicographical_compar:[47,21],uuid:73,fix:73,decai:68,mail:38,non:[105,77,5,67,47,21],"return":[0,2,3,23,6,7,8,9,10,12,91,95,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,101,76,77,78,79,80,81,83,84,85,86,88,89,13,92,93,94,96,97,98,99,75,102,103,104,108,110,112,113,114,115,116,117,118,119],greater:[70,24,74,50,62,19,47,2,7,102],nonneg:[101,57],auto:[0,2,3,23,6,7,8,9,10,12,91,95,15,16,17,19,20,22,5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,49,50,51,56,53,54,55,52,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,92,93,94,96,97,98,99,100,101,102,103,104,107,108,109,110,112,113,114,115,116,117,118,119],initi:[51,68,18,54,107],bound:[9,55,14,66,11,33,16,89,94],front:[63,18,90],oper:[0,29,78,105,90,20,92,64,37,113,100,67,73,74,76,50,17,18,19,55,21,24,45,82],from_str:105,lexicographical_compar:[5,21],revers:[53,61,60,46],separ:107,mode:38,each:[38,87,15,30,42,115,35,83,109],found:[84,2,72,101,77,99,115,57,93,36,110,95],compil:[38,73],adjacent_find:[115,21],domain:73,individu:38,"static":[91,59,1,71,95,114,108,27,42,99,48,111,106,28,119,82,79,35,83,12,109],madocchi:[1,29,30,113,50,24,106,42,20,79,35,83],logn:[0,84,29,104,86,31,88,99,5,34,62,2,7,93,8,36,95,37,9,97,39,77,10,65,12,43,44,115,110,47,102,49,103,70,72,74,101,76,108,40,92,50,16,45,56,96,19,20,79,54,22,24,26,113,66,52,57,116,83,118,117],special:[105,67],out:[55,14,11,33,89,94],all_of_equ:[96,66,21],categori:73,typenam:[0,4,29,30,64,86,3,31,84,99,5,89,34,62,90,2,7,35,8,36,72,37,9,97,39,77,10,11,65,42,43,100,44,104,115,110,47,88,68,49,103,70,93,14,15,74,101,76,108,40,92,50,16,17,45,18,96,19,20,94,109,54,82,22,51,102,24,52,25,26,113,66,78,56,57,58,116,83,118,117],inputiter:[96,102,2,39,40,34,62,90,7,93,65,116,110,103],integr:[58,4,77],log2:[16,9,36,66],forwarditerator2:[101,57,72,104],forwarditerator1:[101,57,104],standard:73,base:[38,94,89],org:38,upper_bound:[16,66,21],length:[108,73,12,90,82,64],string_to_float:105,one_of:[62,21],homuhomu:[59,1,29,30,89,35,108,113,12,42,99,44,95,50,17,106,20,79,109,24,45,83],assign:[59,111,98,42,18,90,82,35,109],first:[84,2,90,86,31,88,23,34,62,6,7,93,8,36,96,9,97,39,10,65,43,115,110,47,102,49,103,70,61,72,63,77,16,56,53,54,22,5,112,26,40,66,52,57,81,116],origin:[28,114],softwar:38,rang:[84,2,31,5,34,62,116,93,65,7,96,9,39,40,8,42,36,47,102,49,103,104,72,101,77,16,52,110,22,66,115,57,117],declval:[18,87,90],arrai:[0,4,2,52,30,86,3,31,32,70,33,23,34,62,100,6,7,93,8,63,60,37,9,97,39,107,10,11,41,85,43,84,36,104,115,110,103,46,47,98,88,68,49,101,67,61,13,72,15,73,74,75,76,65,77,92,80,16,18,96,19,53,94,54,22,5,102,55,51,25,112,26,40,66,78,56,57,69,81,116,87,118,117],number:[38,13,3,32,5,34,47,116,64],cinttyp:73,smaller:[31,43,54],max_el:[49,21],lexicograph:[0,24,113,74,76,50,5,19,47,29,21],size:[80,4,77,13,56,73,32,43,51,18,90,58,68,54],given:[104,84,117],rightmost:54,data:[112,18,90,6,73],licens:38,cstring:73,capac:[18,90],construct:[18,90],conveni:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,111,112,113,114,115,116,117,118,119],store:[64,73],to_hash:[44,118],darkroom:73,namespac:[0,1,2,3,4,5,6,7,8,9,10,11,12,91,14,15,16,17,19,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,56,53,54,55,52,57,58,59,60,61,62,63,64,65,66,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,111,112,113,114,115,116,117,118,119],copi:[38,1,56,25,42,43,106,18,90,78,82,35,54],specifi:[55,43,33,51,56,54],pars:[38,73],c_arrai:[112,18,90],first1:[104,84,72,101,5,57,47,117],first2:[104,84,72,101,5,57,47,117],exactli:[22,104,3,34,49,116,54,115],state_typ:82,than:[0,29,5,62,2,7,113,54,47,102,74,76,77,50,19,79,110,24,27,40,57,83],std:[0,59,1,29,105,30,78,4,33,89,34,90,91,116,35,94,92,106,95,37,64,108,111,113,11,12,42,43,100,44,45,67,99,48,87,71,14,15,74,75,76,50,17,18,19,20,79,109,54,82,24,25,27,98,114,56,28,58,83,118,119],to_int_typ:[82,28,114],sprout_explicit_convers:90,second:[84,31,54,66],structur:73,charact:[82,105],project:38,str:90,posit:[84,2,60,31,33,89,93,41,95,9,66,8,99,46,69,72,101,77,16,52,94,110,22,55,115,57,49,83],to_wstr:105,pre:[1,35],difference_typ:[116,18,34,90],argument:[104,84,64,43,51,56,68,54,117],int_typ:[71,114,28,82,48,119],rai:[38,73],have:[5,47],need:51,predic:[84,2,31,34,62,7,93,65,116,96,39,40,54,102,103,104,72,101,77,110,115,57,117],constexprrandomaccessiter:[18,90],option:73,built:25,equival:[59,1,5,89,91,92,94,37,111,45,12,43,100,44,47,48,71,95,17,56,20,79,54,27,114,106,28,118,119],min:[22,84,31,43,5,115,54,47,117,49,21],greater_equ:26,destroi:[18,90],ptrdiff_t:[18,90],note:[89,44,18,90,94,118],also:[36,66],without:[75,98],which:[38,84,2,52,34,116,93,8,110,115],equal_rang:[66,21],const_refer:[55,85,75,98,33,18,90,63],sprout_noexcept:[91,60,61,32,23,89,6,71,94,41,46,48,69,13,112,18,90,53,80,27,114,28,81,82,119],even:42,begin:[84,2,98,104,86,31,88,23,34,62,90,7,35,8,36,96,9,97,39,10,65,42,99,115,101,47,102,49,103,70,87,93,72,75,77,16,52,78,108,109,110,22,5,26,40,66,18,57,116,83,117],unless:[87,15,30],distribut:38,trace:[38,73],shall:[16,9,77,54,66],buffer:[64,73],object:[51,73,68,25],size_typ:[55,32,33,18,90,13],pair:[84,66,31,5,47,54],crbegin:[61,18,90],madohomu:64,"class":[105,73,100,17,18,90,67],slideshar:38,clear:90,accompani:38,binary_search:[36,21],random:[38,104,117,73],rbegin:[53,18,90],all_of:[40,21],find:[72,101,77,99,57,90,82,93,95,21],onli:[38,18,62,103],explicitli:51,copyright:38,find_first_not_of:90,swap_rang:87,get:[89,94],lower_bound:[66,9,21],make_str:105,express:[4,9,95,66,12,16,58,79,36],clang:38,range_adaptor:73,stoi:105,stod:105,none_of:[102,21],stof:105,is_sort:[70,10,86,88,26,21],requir:[104,89,9,14,66,11,3,43,100,77,16,17,56,94,36,54,117],enabl:90,synthes:[38,73],yield:[5,47],common:68,partit:[16,9,36,66],contain:[84,2,104,86,31,32,5,34,62,6,7,93,8,36,37,38,9,97,39,10,65,45,47,102,49,103,70,13,72,73,96,101,77,92,88,16,52,20,110,22,112,26,40,66,115,57,116,117],comma:107,where:[104,42,31,89,115,107,94,54],valid:[44,94,118,89],wiki:38,arr:[90,25],set:72,cstdio:48,minmax:[54,21],see:38,result:[84,2,104,86,3,31,88,99,5,34,62,91,7,64,8,36,95,96,9,97,39,10,65,12,43,115,110,47,93,102,49,103,70,71,72,101,77,16,56,108,79,54,22,26,27,40,114,66,52,57,28,116,117,83,119],arg:[51,68],hash_valu:[44,105,118,67],any_of_equ:[39,21],modulu:34,correctli:42,eq_int_typ:[82,71,28,114],less_equ:86,smallest:[108,43,54,99],neither:[5,47],paramet:51,numer:[105,73],comp:[22,16,9,97,52,10,3,31,43,5,66,56,54,47,8,36,49],crend:[18,60,90],typedef:[82,18,90],cbegin:[18,41,90,81],constexpr:[38,56,43,54],type_trait:[11,14,73],preprocessor:73,randomaccessiter:[52,97],struct:[4,14,11,100,17,58,82],both:115,metaprogram:73,last:[2,60,85,86,31,88,34,62,90,116,93,65,7,96,9,97,39,10,8,36,46,102,49,103,70,101,77,16,52,110,22,26,40,66,115,69,41],delimit:47,ill:[11,89,94,14],equal:[104,91,92,93,65,116,37,39,113,45,103,96,71,72,74,101,76,77,50,20,21,66,114,115,57,28,117],rfind:90,range_algorithm:73,char_trait:[59,1,90,71,35,108,111,12,42,99,48,91,95,106,79,109,105,27,114,28,82,83,119],bitset:73,static_s:[18,90],stoumax:105,point:[38,3],header:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],permut:104,is_permut:[104,21],respect:[16,9,36,66],minmax_el:[31,21],rend:[18,90,46],stretch:105,empti:[80,96,39,40,101,31,5,18,57,90,47,62,7,102,65,103,72],unexpect:3,cend:[18,90],remark:[51,84,68,55,104,3,43,99,5,56,107,47,64,54,117],ani:[22,16,9,39,101,77,5,57,47,7,49],assert:[59,1,98,15,30,75,42,106,35,87,109,111],sprout_noexcept_expr:[18,87,90,15,30],tuple_get:[89,94,105,67],"case":[75,98],u32str:105,ident:3,defin:[89,43,5,44,18,56,118,90,47,94,54],sprout_constexpr:[0,2,3,23,6,7,8,9,10,12,91,95,16,18,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,68,69,70,71,72,74,101,76,77,79,80,81,82,83,84,85,86,88,89,90,13,92,93,94,96,97,98,99,75,102,103,104,108,110,112,113,114,115,116,117,118,119],behavior:55,furthermost:[16,9],exist:104,invoc:[0,2,23,6,7,8,9,10,12,91,95,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,60,61,62,63,64,65,66,68,69,70,71,72,74,101,76,77,79,80,81,83,84,85,86,88,89,13,92,93,94,96,97,98,99,75,102,103,104,107,108,110,112,113,114,115,116,117,118,119],bolero:38,cctype:73,floattyp:105,sever:[56,43,54],welcom:38,author:38,perform:[35,42,109],alphabet:73,murakami:38,same:[70,25,26,88,5,89,86,47,94],shorter:[5,47],binari:[36,21],complex:[0,1,2,3,23,6,7,8,9,10,12,91,95,15,16,19,20,22,5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,59,60,61,62,63,64,65,66,68,69,70,71,72,73,74,75,76,77,79,80,81,83,84,85,86,87,88,89,13,92,93,94,96,97,98,99,101,102,103,104,106,107,108,109,110,111,112,113,114,115,116,117,118,119],largest:[64,56,54],document:38,http:38,effect:[59,1,72,15,30,75,42,77,101,106,57,78,98,35,87,109,111],weed:73,stoul:105,lower:[9,66],elem:18,is_heap:[97,21],exampl:[0,1,2,3,4,5,6,7,8,9,10,11,12,91,14,15,16,17,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,111,112,113,114,115,116,117,118,119],thi:[38,43,99,51,56,78,54],undefin:55,sprout_static_constexpr:[0,1,2,3,23,6,7,8,9,10,12,91,95,16,17,18,19,20,22,5,24,25,26,27,28,29,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,79,80,81,83,84,85,86,88,89,90,13,92,93,94,96,97,98,99,100,101,102,103,104,106,107,108,110,111,112,113,114,115,116,117,118,119],bit_oper:73,distanc:[104,95,31,99,52,8],less:[0,29,40,27,113,77,88,5,57,47,79,83,76,110],nan:3,license_1_0:38,float_to_str:105,find_last_of:90,stringconstiter:90,is_strictly_increas:[86,21],float_to_string_exp:105,static_assert:[0,2,3,23,6,7,8,9,10,11,12,91,14,16,17,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,4,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,79,80,81,83,84,85,86,88,89,13,92,93,94,95,96,97,98,99,100,101,102,103,104,108,110,112,113,114,115,116,117,118,119],miscellan:73,size_t:[0,59,1,29,30,4,89,90,92,35,94,95,37,64,108,113,11,12,42,99,100,44,14,15,74,76,50,17,18,19,20,79,109,82,24,25,45,106,58,83,118],except:[87,15,30],blog:38,exposit:18,input:[2,60,85,86,3,31,32,33,23,89,34,62,6,7,93,8,36,96,9,97,39,40,41,43,100,44,115,110,46,102,49,103,70,61,13,88,63,80,16,17,56,107,53,94,54,22,112,55,65,26,10,66,52,69,81,116,118],adl:[44,94,118,89],subsequ:[101,57,77],match:72,applic:[84,2,31,5,34,62,7,93,65,116,96,39,40,110,47,102,49,103,104,72,101,77,54,22,115,57,117],wstring:105,is_increas:[88,21],recurs:[0,2,23,6,7,8,9,10,12,91,95,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,60,61,62,63,64,65,66,68,69,70,71,72,74,101,76,77,79,80,81,83,84,85,86,88,89,13,92,93,94,96,97,98,99,75,102,103,104,107,108,110,112,113,114,115,116,117,118,119],insert:105,like:73,specif:73,integ:[82,57,77,101],noth:[87,15,30],char_typ:[59,1,91,95,27,108,99,109,106,28,90,82,79,114,83,12,111],resiz:90,page:38,www:38,homu:64,twitter:38,linux:38,some:[83,72],back:[112,18,90,6,85],last1:[104,84,72,101,5,57,47,117],last2:[104,84,72,101,5,57,47,117],sizeof:[51,68],make_pair:[31,66],librari:[38,73],pos1:90,not_eof:[82,119],common_decai:68,overlap:42,mathemat:73,const_point:[112,18,90,6],nonempti:115,condit:[22,84,9,2,72,101,3,77,16,1,34,110,117,57,116,35,93,36,49,115],leftmost:[56,43,54],content:[37,0,29,113,74,38,76,19,50,45,20,24,92],refer:[55,85,31,33,89,18,90,63,94],ration:73,stoimax:105,index_tupl:73,repositori:38,lessthancompar:[3,56,43,54],sprout_assert_msg:[59,1,98,15,30,75,42,106,35,87,109,111],"throw":[33,87,15,30],comparison:[0,29,3,5,105,92,36,37,9,113,45,67,47,49,74,76,50,16,19,20,54,21,22,24,66],c_str:90,most:[84,2,31,5,62,7,93,65,36,96,9,39,40,110,47,102,103,72,101,77,16,54,66,57,117],delim1:47,delim2:47,find_first_of:[72,90,21],includ:[0,1,2,3,4,5,6,7,8,9,10,11,12,91,14,15,16,17,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,58,59,60,61,62,63,64,65,66,68,69,70,71,72,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,13,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,111,112,113,114,115,116,117,118,119],constructor:90,string_to_int:105,search_n:[77,21],any_of:[7,21],clamp:[3,21],"float":3,fill_n:[75,98],forwarditer:[22,70,9,10,26,31,77,88,16,66,115,86,8,36,49],cstdlib:73,u16str:105,fill:[75,59,18,109,98],support:[38,105,73,43,56,67,54],transform:47,out_of_rang:33,start:38,compliant:73,interfac:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,108,109,110,111,112,113,114,115,116,117,118,119],low:3,strictli:[26,86],const_reverse_iter:[60,61,18,90,46,53],"function":[0,2,23,6,7,8,9,10,12,91,95,16,17,18,19,20,21,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,88,89,90,13,92,93,94,96,97,98,99,100,101,102,103,104,105,107,108,110,112,113,114,115,116,117,118,119],form:[11,89,94,14],tupl:[4,105,14,73,11,89,67,58,94,118],is_sam:[11,14],link:38,heap:[52,97,21],inlin:[0,84,29,30,86,3,31,88,5,89,34,62,2,7,64,8,36,37,9,97,39,77,10,65,43,44,104,115,110,47,68,49,103,70,93,72,15,74,101,76,40,92,50,16,45,56,96,19,20,94,54,22,51,102,24,25,26,113,66,52,57,116,118,117],"true":[0,29,104,5,62,92,65,7,37,108,39,113,99,36,45,102,103,96,74,76,50,19,20,80,24,40,83,117],longer:[5,47],count:[116,34,77,21],concaten:[64,105],wise:87,"default":90,mado:64,maximum:21,is_decreas:[70,21],below:[104,84,117],extractor:105,to_char_typ:[82,28,114],otherwis:[0,29,104,3,31,5,62,7,65,92,37,39,113,8,99,45,47,102,103,96,74,76,50,52,19,20,54,80,24,40,57,83,117],constant:[91,4,60,85,61,32,33,23,89,6,71,63,64,41,111,98,94,12,46,68,48,69,13,95,75,51,18,90,107,53,79,80,112,55,25,27,114,28,81,58,119],sub_arrai:73,"int":[0,4,2,60,85,86,3,31,32,33,23,34,62,100,6,71,7,93,8,63,37,9,97,39,107,10,11,41,43,84,36,104,115,110,103,46,47,98,88,102,49,101,69,70,96,61,13,72,15,74,75,76,65,77,92,80,16,56,90,19,53,79,54,94,22,5,55,51,25,112,26,40,114,66,78,52,57,28,81,82,116,87,83,118,117],to_arrai:[67,25],matafunct:[105,67],"char":[59,1,71,35,95,108,111,12,42,99,48,91,14,106,79,109,27,114,28,82,83,119],decreas:[26,70],file:38,adjac:115,pit:73,constinputiter:[108,42,99,82,35,83],denot:[104,84,117],copyconstruct:[56,43,54],floor:31,pos2:90,hpp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],when:[56,43,54,99],other:[5,38,47,90,115],bool:[0,29,104,86,88,5,62,90,91,7,65,36,37,97,39,10,45,102,103,70,71,74,76,40,92,50,18,96,19,20,80,24,26,27,113,82,117],trait:[105,64,29,14,113,44,30,50,89,17,45,90,20,24,58],shrink:105,sequenc:[73,101,77,5,57,47,21],stoull:105,max_siz:[18,13,90],outputiter:[82,35,42,109],to_u32str:105,concat:64,eof:[82,48,119],algorithm:[84,2,104,86,3,31,88,5,34,62,7,93,8,36,96,38,9,97,39,10,65,43,115,110,67,47,102,49,103,70,72,73,101,77,16,56,54,21,22,105,26,40,66,52,57,116,117],reverse_iter:[53,18,90,46],directori:38,descript:[38,105,100,17,18,90,67,82],to_str:105,depth:[0,2,23,6,7,8,9,10,12,91,95,16,19,20,22,5,24,25,26,27,28,29,31,32,33,34,36,37,39,40,41,43,44,45,46,47,48,49,50,51,56,53,54,55,52,57,60,61,62,63,64,65,66,68,69,70,71,72,74,101,76,77,79,80,81,83,84,85,86,88,89,13,92,93,94,96,97,98,99,75,102,103,104,107,108,110,112,113,114,115,116,117,118,119],time:73,convert:[77,114,18,28,90,107]},objtypes:{},titles:["operator<","copy","find_if","clamp","std::tuple_size","lexicographical_compare","back","any_of","is_sorted_until","lower_bound","is_sorted","std::tuple_element","length","max_size","std::tuple_element","swap","upper_bound","std::hash","array","operator>","operator!=","Sprout.Algorithm","min_element","begin","operator>","to_array","is_strictly_decreasing","lt","to_char_type","operator<","swap","minmax_element","size","at","count_if","copy","binary_search","operator!=","Sprout C++ Libraries","any_of_equal","all_of","cbegin","move","min","hash_value","operator==","rend","tristate_lexicographical_compare","eof","max_element","operator>=","make_array","is_heap_until","rbegin","minmax","operator[]","max","search","std::tuple_size","assign","crend","crbegin","one_of","front","operator+","none_of_equal","equal_range","Sprout.Array","make_common_array","end","is_decreasing","eq_int_type","find_first_of","Libraries","operator>=","fill","operator<=","search_n","operator=","compare","empty","cbegin","char_traits","compare","mismatch","back","is_strictly_increasing","swap","is_increasing","tuple_get","basic_string","eq","operator==","find","tuple_get","find","all_of_equal","is_heap","assign","find","std::hash","find_end","none_of","one_of_equal","is_permutation","Sprout.String","move","(initializer)","length","assign","find_if_not","assign","back","operator<=","to_int_type","adjacent_find","count","equal","hash_value","not_eof"],objnames:{},filenames:["libs/array/array/operator-less","libs/string/char_traits/copy","libs/algorithm/find_if","libs/algorithm/clamp","libs/array/array/std-tuple_size","libs/algorithm/lexicographical_compare","libs/array/array/data","libs/algorithm/any_of","libs/algorithm/is_sorted_until","libs/algorithm/lower_bound","libs/algorithm/is_sorted","libs/array/array/std-tuple_element","libs/string/char_traits/length","libs/array/array/max_size","libs/string/basic_string/std-tuple_element","libs/array/array/swap-global","libs/algorithm/upper_bound","libs/string/basic_string/std-hash","libs/array/array/index","libs/array/array/operator-greater","libs/string/basic_string/operator-not_equal_to","libs/algorithm/index","libs/algorithm/min_element","libs/array/array/begin","libs/string/basic_string/operator-greater","libs/array/to_array","libs/algorithm/is_strictly_decreasing","libs/string/char_traits/lt","libs/string/char_traits/to_char_type","libs/string/basic_string/operator-less","libs/string/basic_string/swap-global","libs/algorithm/minmax_element","libs/array/array/size","libs/array/array/at","libs/algorithm/count_if","libs/string/char_traits/copy-iterator","libs/algorithm/binary_search","libs/array/array/operator-not_equal_to","index","libs/algorithm/any_of_equal","libs/algorithm/all_of","libs/array/array/cend","libs/string/char_traits/move-iterator","libs/algorithm/min","libs/string/basic_string/hash_value","libs/string/basic_string/operator-equal_to","libs/array/array/rend","libs/algorithm/tristate_lexicographical_compare","libs/string/char_traits/eof","libs/algorithm/max_element","libs/string/basic_string/operator-greater_equal","libs/array/make_array","libs/algorithm/is_heap_until","libs/array/array/rbegin","libs/algorithm/minmax","libs/array/array/operator-subscript","libs/algorithm/max","libs/algorithm/search","libs/string/basic_string/std-tuple_size","libs/string/char_traits/assign-string","libs/array/array/crend","libs/array/array/crbegin","libs/algorithm/one_of","libs/array/array/front","libs/string/basic_string/operator-plus","libs/algorithm/none_of_equal","libs/algorithm/equal_range","libs/array/index","libs/array/make_common_array","libs/array/array/end","libs/algorithm/is_decreasing","libs/string/char_traits/eq_int_type","libs/algorithm/find_first_of","libs/index","libs/array/array/operator-greater_equal","libs/array/array/fill","libs/array/array/operator-less_equal","libs/algorithm/search_n","libs/array/array/operator-assign","libs/string/char_traits/compare","libs/array/array/empty","libs/array/array/cbegin","libs/string/char_traits/index","libs/string/char_traits/compare-iterator","libs/algorithm/mismatch","libs/array/array/back","libs/algorithm/is_strictly_increasing","libs/array/array/swap","libs/algorithm/is_increasing","libs/string/basic_string/tuple_get","libs/string/basic_string/index","libs/string/char_traits/eq","libs/array/array/operator-equal_to","libs/algorithm/find","libs/array/array/tuple_get","libs/string/char_traits/find","libs/algorithm/all_of_equal","libs/algorithm/is_heap","libs/array/array/assign","libs/string/char_traits/find-iterator","libs/array/array/std-hash","libs/algorithm/find_end","libs/algorithm/none_of","libs/algorithm/one_of_equal","libs/algorithm/is_permutation","libs/string/index","libs/string/char_traits/move","libs/array/array/initializer-","libs/string/char_traits/length-iterator","libs/string/char_traits/assign-iterator","libs/algorithm/find_if_not","libs/string/char_traits/assign","libs/array/array/c_array","libs/string/basic_string/operator-less_equal","libs/string/char_traits/to_int_type","libs/algorithm/adjacent_find","libs/algorithm/count","libs/algorithm/equal","libs/array/array/hash_value","libs/string/char_traits/not_eof"]}) \ No newline at end of file diff --git a/source/libs/array/array/index.rst b/source/libs/array/array/index.rst index 4bce3b68..b4c212fc 100644 --- a/source/libs/array/array/index.rst +++ b/source/libs/array/array/index.rst @@ -22,8 +22,8 @@ array size max_size empty - at operator-subscript + at front back data @@ -34,71 +34,7 @@ Interface .. sourcecode:: c++ template - class array { - // types: - typedef T& reference; - typedef T const& const_reference; - typedef /*implementation-defined*/ iterator; - typedef /*implementation-defined*/ const_iterator; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef T const* const_pointer; - typedef sprout::reverse_iterator reverse_iterator; - typedef sprout::reverse_iterator const_reverse_iterator; - - // constants: - SPROUT_STATIC_CONSTEXPR size_type static_size = N; - - T elems[N ? N : 1]; // exposition only - - // construct/copy/destroy: - template - array& operator=(array const& rhs); - template - array& operator=(array&& rhs); - - // modifiers: - void fill(const_reference value); - SPROUT_CONSTEXPR array fill(const_reference value) const; - void assign(const_reference value); - SPROUT_CONSTEXPR array assign(const_reference value) const; - void swap(array&) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::swap(std::declval(), std::declval()))); - - // iterators: - iterator begin() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT; - iterator end() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT; - reverse_iterator rbegin() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator rbegin() const SPROUT_NOEXCEPT; - reverse_iterator rend() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator rend() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator crbegin() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_reverse_iterator crend() const SPROUT_NOEXCEPT; - - // capacity: - SPROUT_CONSTEXPR size_type size() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR size_type max_size() const SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR bool empty() const SPROUT_NOEXCEPT; - - // element access: - reference operator[](size_type n); - SPROUT_CONSTEXPR const_reference operator[](size_type n) const; - reference at(size_type n); - SPROUT_CONSTEXPR const_reference at(size_type n) const; - reference front(); - SPROUT_CONSTEXPR const_reference front() const; - reference back(); - SPROUT_CONSTEXPR const_reference back() const; - pointer data() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT; - pointer c_array() SPROUT_NOEXCEPT; - SPROUT_CONSTEXPR const_pointer c_array() const SPROUT_NOEXCEPT; - }; + class array; Description ======================================== @@ -205,3 +141,73 @@ Header Convenience header: ``sprout/array.hpp`` +Interface of all +======================================== +.. sourcecode:: c++ + + template + class array { + // types: + typedef T& reference; + typedef T const& const_reference; + typedef /*implementation-defined*/ iterator; + typedef /*implementation-defined*/ const_iterator; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef T value_type; + typedef T* pointer; + typedef T const* const_pointer; + typedef sprout::reverse_iterator reverse_iterator; + typedef sprout::reverse_iterator const_reverse_iterator; + + // constants: + SPROUT_STATIC_CONSTEXPR size_type static_size = N; + + T elems[N ? N : 1]; // exposition only + + // construct/copy/destroy: + template + array& operator=(array const& rhs); + template + array& operator=(array&& rhs); + + // modifiers: + void fill(const_reference value); + SPROUT_CONSTEXPR array fill(const_reference value) const; + void assign(const_reference value); + SPROUT_CONSTEXPR array assign(const_reference value) const; + void swap(array&) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::swap(std::declval(), std::declval()))); + + // iterators: + iterator begin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT; + iterator end() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT; + reverse_iterator rbegin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rbegin() const SPROUT_NOEXCEPT; + reverse_iterator rend() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crend() const SPROUT_NOEXCEPT; + + // capacity: + SPROUT_CONSTEXPR size_type size() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type max_size() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR bool empty() const SPROUT_NOEXCEPT; + + // element access: + reference operator[](size_type n); + SPROUT_CONSTEXPR const_reference operator[](size_type n) const; + reference at(size_type n); + SPROUT_CONSTEXPR const_reference at(size_type n) const; + reference front(); + SPROUT_CONSTEXPR const_reference front() const; + reference back(); + SPROUT_CONSTEXPR const_reference back() const; + pointer data() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT; + pointer c_array() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer c_array() const SPROUT_NOEXCEPT; + }; diff --git a/source/libs/string/basic_string/index.rst b/source/libs/string/basic_string/index.rst new file mode 100644 index 00000000..614de280 --- /dev/null +++ b/source/libs/string/basic_string/index.rst @@ -0,0 +1,402 @@ +.. _sprout-string-basic_string: +############################################################################### +basic_string +############################################################################### + +.. toctree:: + :hidden: + + constructor- + operator-assign + begin + end + rbegin + rend + cbegin + cend + crbegin + crend + size + length + max_size + resize + clear + empty + operator-subscript + at + front + back + assign + swap + data + c_array + data + find + rfind + find_first_of + find_last_of + find_first_not_of + find_last_not_of + substr + compare + operator-std-basic_string + operator-assign-iterator + assign-iterator + find-iterator + rfind-iterator + find_first_of-iterator + find_last_of-iterator + find_first_not_of-iterator + find_last_not_of-iterator + compare-iterator + +Interface +======================================== +.. sourcecode:: c++ + + template > + class basic_string; + +Description +======================================== + +Member types +---------------------------------------- + +======================================== =============================================================================== ======================================= +type definition note +======================================== =============================================================================== ======================================= +traits_type Traits +value_type Traits::char_type +size_type std::size_t +difference_type std::ptrdiff_t +reference value_type& +const_reference value_type const& +pointer value_type* +const_pointer value_type const* +iterator **ConstexprRandomAccessIterator** convertible to const_iterator, + convertible to pointer +const_iterator **ConstexprRandomAccessIterator** convertible to const_pointer +reverse_iterator sprout::reverse_iterator, + **ConstexprRandomAccessIterator** +const_reverse_iterator sprout::reverse_iterator, + **ConstexprRandomAccessIterator** +======================================== =============================================================================== ======================================= + +Member functions +---------------------------------------- + +construct/copy/destroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`(constructor) <./constructor->` +:doc:`operator= <./operator-assign>` +======================================== =============================================================================== + +iterators +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`begin <./begin>` +:doc:`end <./end>` +:doc:`rbegin <./rbegin>` +:doc:`rend <./rend>` +:doc:`cbegin <./cbegin>` +:doc:`cend <./cend>` +:doc:`crbegin <./crbegin>` +:doc:`crend <./crend>` +======================================== =============================================================================== + +capacity +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`size <./size>` +:doc:`length <./length>` +:doc:`max_size <./max_size>` +:doc:`resize <./resize>` +:doc:`clear <./clear>` +:doc:`empty <./empty>` +======================================== =============================================================================== + +element access +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`operator[] <./operator-subscript>` +:doc:`at <./at>` +:doc:`front <./front>` +:doc:`back <./back>` +======================================== =============================================================================== + +modifiers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`assign <./assign>` +:doc:`swap <./swap>` +======================================== =============================================================================== + +string operations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +============================================================ =============================================================================== +function +============================================================ =============================================================================== +:doc:`data <./data>` +:doc:`c_array <./c_array>` +:doc:`find <./find>` +:doc:`rfind <./rfind>` +:doc:`find_first_of <./find_first_of>` +:doc:`find_last_of <./find_last_of>` +:doc:`find_first_not_of <./find_first_not_of>` +:doc:`find_last_not_of <./find_last_not_of>` +:doc:`substr <./substr>` +:doc:`compare <./compare>` +============================================================ =============================================================================== + +conversions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +================================================================================ =============================================================================== +function +================================================================================ =============================================================================== +:doc:`operator std::basic_string <./operator-std-basic_string>` +================================================================================ =============================================================================== + +construct/copy/destroy (for string iterator) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +============================================================ =============================================================================== +function +============================================================ =============================================================================== +:doc:`operator= <./operator-assign-iterator>` +============================================================ =============================================================================== + +modifiers (for string iterator) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +function +======================================== =============================================================================== +:doc:`assign <./assign-iterator>` +======================================== =============================================================================== + +string operations (for string iterator) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +============================================================ =============================================================================== +function +============================================================ =============================================================================== +:doc:`find <./find-iterator>` +:doc:`rfind <./rfind-iterator>` +:doc:`find_first_of <./find_first_of-iterator>` +:doc:`find_last_of <./find_last_of-iterator>` +:doc:`find_first_not_of <./find_first_not_of-iterator>` +:doc:`find_last_not_of <./find_last_not_of-iterator>` +:doc:`compare <./compare-iterator>` +============================================================ =============================================================================== + +Header +======================================== + +``sprout/string/string.hpp`` + +Convenience header: ``sprout/string.hpp`` + +Interface of all +======================================== +.. sourcecode:: c++ + + template > + class basic_string { + // types: + typedef Traits traits_type; + typedef typename Traits::char_type value_type; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef value_type& reference; + typedef value_type const& const_reference; + typedef value_type* pointer; + typedef value_type const* const_pointer; + typedef /*implementation-defined*/ iterator; + typedef /*implementation-defined*/ const_iterator; + typedef sprout::reverse_iterator reverse_iterator; + typedef sprout::reverse_iterator const_reverse_iterator; + + // constants: + SPROUT_STATIC_CONSTEXPR size_type npos = -1; + SPROUT_STATIC_CONSTEXPR size_type static_size = N; + + // construct/copy/destroy: + SPROUT_CONSTEXPR basic_string() = default; + SPROUT_CONSTEXPR basic_string(basic_string const&) = default; + template::type> + SPROUT_CONSTEXPR basic_string(basic_string const& str); + SPROUT_CONSTEXPR basic_string(basic_string const& str, size_type pos, size_type n = npos); + template::type> + SPROUT_CONSTEXPR basic_string(basic_string const& str, size_type pos, size_type n = npos); + template::type> + SPROUT_CONSTEXPR basic_string(T const(& arr)[N2]); + template::type> + SPROUT_CONSTEXPR basic_string(T const(& arr)[N2], size_type n); + explicit SPROUT_CONSTEXPR basic_string(value_type const* s); + SPROUT_CONSTEXPR basic_string(value_type const* s, size_type n); + template + SPROUT_CONSTEXPR basic_string(InputIterator first, InputIterator last); + basic_string(std::initializer_list il); + basic_string& operator=(basic_string const& rhs); + template::type> + basic_string& operator=(basic_string const& rhs); + basic_string& operator=(value_type const* rhs); + basic_string& operator=(value_type rhs); + + // iterators: + iterator begin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT; + iterator end() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT; + reverse_iterator rbegin() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rbegin() const SPROUT_NOEXCEPT; + reverse_iterator rend() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator rend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crbegin() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_reverse_iterator crend() const SPROUT_NOEXCEPT; + + // capacity: + SPROUT_CONSTEXPR size_type size() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type length() const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type max_size() const SPROUT_NOEXCEPT; + void resize(size_type n, value_type c); + void resize(size_type n); + void clear(); + SPROUT_CONSTEXPR bool empty() const SPROUT_NOEXCEPT; + + // element access: + reference operator[](size_type i); + SPROUT_CONSTEXPR const_reference operator[](size_type i) const; + reference at(size_type i); + SPROUT_CONSTEXPR const_reference at(size_type i) const; + reference front(); + SPROUT_CONSTEXPR const_reference front() const; + reference back(); + SPROUT_CONSTEXPR const_reference back() const; + + // modifiers: + template + basic_string& assign(basic_string const& str); + template + basic_string& assign(basic_string const& str, size_type pos, size_type n); + basic_string& assign(value_type const* s, size_type n); + basic_string& assign(value_type const* s); + basic_string& assign(size_type n, value_type c); + template + basic_string& assign(Iterator first, Iterator last); + void swap(basic_string& other) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::swap(std::declval(), std::declval()))); + + // string operations: + SPROUT_CONSTEXPR const_pointer c_str() const SPROUT_NOEXCEPT; + pointer data() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT; + pointer c_array() SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR const_pointer c_array() const SPROUT_NOEXCEPT; + template + SPROUT_CONSTEXPR size_type find(basic_string const& str, size_type pos = 0) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find(value_type const* s, size_type pos = 0) const; + SPROUT_CONSTEXPR size_type find(value_type c, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type rfind(basic_string const& str, size_type pos = npos) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type rfind(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type rfind(value_type const* s, size_type pos = npos) const; + SPROUT_CONSTEXPR size_type rfind(value_type c, size_type pos = npos) const; + template + SPROUT_CONSTEXPR size_type find_first_of(basic_string const& str, size_type pos = 0) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_first_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_first_of(value_type const* s, size_type pos = 0) const; + SPROUT_CONSTEXPR size_type find_first_of(value_type c, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_of(basic_string const& str, size_type pos = npos) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_last_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_last_of(value_type const* s, size_type pos = npos) const; + SPROUT_CONSTEXPR size_type find_last_of(value_type c, size_type pos = npos) const; + template + SPROUT_CONSTEXPR size_type find_first_not_of(basic_string const& str, size_type pos = 0) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_first_not_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_first_not_of(value_type const* s, size_type pos = 0) const; + SPROUT_CONSTEXPR size_type find_first_not_of(value_type c, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_not_of(basic_string const& str, size_type pos = npos) const SPROUT_NOEXCEPT; + SPROUT_CONSTEXPR size_type find_last_not_of(value_type const* s, size_type pos, size_type n) const; + SPROUT_CONSTEXPR size_type find_last_not_of(value_type const* s, size_type pos = npos) const; + SPROUT_CONSTEXPR size_type find_last_not_of(value_type c, size_type pos = npos) const; + SPROUT_CONSTEXPR basic_string substr(size_type pos = 0, size_type n = npos) const; + template + SPROUT_CONSTEXPR int compare(basic_string const& str) const; + SPROUT_CONSTEXPR int compare(value_type const* s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, basic_string const& str) const; + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, value_type const* s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, basic_string const& str, size_type pos2, size_type n2) const; + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, value_type const* s, size_type n2) const; + + // conversions: + template + SPROUT_EXPLICIT_CONVERSION operator std::basic_string() const; + + // construct/copy/destroy (for string iterator): + template + basic_string& operator=(StringConstIterator rhs); + + // modifiers (for string iterator): + template + basic_string& assign(StringConstIterator s, size_type n); + template + basic_string& assign(StringConstIterator s); + + // string operations (for string iterator): + template + SPROUT_CONSTEXPR size_type find(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type rfind(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type rfind(StringConstIterator s, size_type pos = npos) const; + template + SPROUT_CONSTEXPR size_type find_first_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_first_of(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_last_of(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_first_not_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_first_not_of(StringConstIterator s, size_type pos = 0) const; + template + SPROUT_CONSTEXPR size_type find_last_not_of(StringConstIterator s, size_type pos, size_type n) const; + template + SPROUT_CONSTEXPR size_type find_last_not_of(StringConstIterator s, size_type pos = npos) const; + template + SPROUT_CONSTEXPR int compare(StringConstIterator s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, StringConstIterator s) const; + template + SPROUT_CONSTEXPR int compare(size_type pos1, size_type n1, StringConstIterator s, size_type n2) const; + }; diff --git a/source/libs/string/char_traits/index.rst b/source/libs/string/char_traits/index.rst index fea27220..7a50f628 100644 --- a/source/libs/string/char_traits/index.rst +++ b/source/libs/string/char_traits/index.rst @@ -32,52 +32,7 @@ Interface .. 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 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 char_type* move(char_type* s1, char_type const* s2, std::size_t n); - static char_type* copy(char_type* s1, char_type const* s2, std::size_t n); - static 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 OutputIterator move(OutputIterator s1, ConstInputIterator s2, std::size_t n); - template - static OutputIterator copy(OutputIterator s1, ConstInputIterator s2, std::size_t n); - template - static OutputIterator assign(OutputIterator s, std::size_t n, char_type a); - }; + struct char_traits; Description ======================================== @@ -157,3 +112,54 @@ Header 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 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 char_type* move(char_type* s1, char_type const* s2, std::size_t n); + static char_type* copy(char_type* s1, char_type const* s2, std::size_t n); + static 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 OutputIterator move(OutputIterator s1, ConstInputIterator s2, std::size_t n); + template + static OutputIterator copy(OutputIterator s1, ConstInputIterator s2, std::size_t n); + template + static OutputIterator assign(OutputIterator s, std::size_t n, char_type a); + }; diff --git a/source/libs/string/index.rst b/source/libs/string/index.rst index e8971e86..27905f99 100644 --- a/source/libs/string/index.rst +++ b/source/libs/string/index.rst @@ -7,6 +7,11 @@ Sprout.String :hidden: char_traits/index + basic_string/index + string + wstring + u16string + u32string basic_string/swap-global basic_string/operator-plus basic_string/operator-equal_to @@ -15,6 +20,40 @@ Sprout.String basic_string/operator-greater basic_string/operator-less_equal basic_string/operator-greater_equal + basic_string/operator-left_shift + basic_string/operator-right_shift + string_to_int + stoi + stol + stoul + stoll + stoull + stoimax + stoumax + from_string-inttype + string_to_float + stof + stod + stold + from_string-floattype + int_to_string + to_string_of-inttype + to_string-inttype + to_wstring-inttype + to_u16string-inttype + to_u32string-inttype + float_to_string + float_to_string_exp + to_string_of-floattype + to_string-floattype + to_wstring-floattype + to_u16string-floattype + to_u32string-floattype + to_string + string_from_c_str + make_string + shrink + stretch basic_string/std-tuple_size basic_string/std-tuple_element basic_string/tuple_get @@ -40,11 +79,19 @@ String classes class ============================================================ =============================================================================== :doc:`basic_string <./basic_string/index>` +============================================================ =============================================================================== + +basic_string aliases +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +======================================== =============================================================================== +aliases +======================================== =============================================================================== :doc:`string <./string>` :doc:`wstring <./wstring>` :doc:`u16string <./u16string>` :doc:`u32string <./u32string>` -============================================================ =============================================================================== +======================================== =============================================================================== Non-member functions ---------------------------------------- @@ -103,7 +150,6 @@ function :doc:`stoul <./stoul>` :doc:`stoll <./stoll>` :doc:`stoull <./stoull>` -:doc:`stoull <./stoull>` :doc:`stoimax <./stoimax>` :doc:`stoumax <./stoumax>` :doc:`from_string \ <./from_string-inttype>`