diff options
Diffstat (limited to 'Cython/Includes/libcpp/string.pxd')
-rw-r--r-- | Cython/Includes/libcpp/string.pxd | 126 |
1 files changed, 111 insertions, 15 deletions
diff --git a/Cython/Includes/libcpp/string.pxd b/Cython/Includes/libcpp/string.pxd index a894144f1..23518806a 100644 --- a/Cython/Includes/libcpp/string.pxd +++ b/Cython/Includes/libcpp/string.pxd @@ -7,34 +7,116 @@ cdef extern from "<string>" namespace "std::string" nogil: cdef extern from "<string>" namespace "std" nogil: cdef cppclass string: + ctypedef char value_type + # these should really be allocator_type.size_type and + # allocator_type.difference_type to be true to the C++ definition + # but cython doesn't support deferred access on template arguments + ctypedef size_t size_type + ctypedef ptrdiff_t difference_type + + cppclass const_iterator cppclass iterator: - iterator() - char& operator*() - iterator(iterator&) + iterator() except + + iterator(iterator&) except + + value_type& operator*() iterator operator++() iterator operator--() + iterator operator++(int) + iterator operator--(int) + iterator operator+(size_type) + iterator operator-(size_type) + difference_type operator-(iterator) + difference_type operator-(const_iterator) bint operator==(iterator) + bint operator==(const_iterator) bint operator!=(iterator) - + bint operator!=(const_iterator) + bint operator<(iterator) + bint operator<(const_iterator) + bint operator>(iterator) + bint operator>(const_iterator) + bint operator<=(iterator) + bint operator<=(const_iterator) + bint operator>=(iterator) + bint operator>=(const_iterator) + cppclass const_iterator: + const_iterator() except + + const_iterator(iterator&) except + + const_iterator(const_iterator&) except + + operator=(iterator&) except + + const value_type& operator*() + const_iterator operator++() + const_iterator operator--() + const_iterator operator++(int) + const_iterator operator--(int) + const_iterator operator+(size_type) + const_iterator operator-(size_type) + difference_type operator-(iterator) + difference_type operator-(const_iterator) + bint operator==(iterator) + bint operator==(const_iterator) + bint operator!=(iterator) + bint operator!=(const_iterator) + bint operator<(iterator) + bint operator<(const_iterator) + bint operator>(iterator) + bint operator>(const_iterator) + bint operator<=(iterator) + bint operator<=(const_iterator) + bint operator>=(iterator) + bint operator>=(const_iterator) + + cppclass const_reverse_iterator cppclass reverse_iterator: - char& operator*() - iterator operator++() - iterator operator--() - iterator operator+(size_t) - iterator operator-(size_t) + reverse_iterator() except + + reverse_iterator(reverse_iterator&) except + + value_type& operator*() + reverse_iterator operator++() + reverse_iterator operator--() + reverse_iterator operator++(int) + reverse_iterator operator--(int) + reverse_iterator operator+(size_type) + reverse_iterator operator-(size_type) + difference_type operator-(iterator) + difference_type operator-(const_iterator) bint operator==(reverse_iterator) + bint operator==(const_reverse_iterator) bint operator!=(reverse_iterator) + bint operator!=(const_reverse_iterator) bint operator<(reverse_iterator) + bint operator<(const_reverse_iterator) bint operator>(reverse_iterator) + bint operator>(const_reverse_iterator) bint operator<=(reverse_iterator) + bint operator<=(const_reverse_iterator) bint operator>=(reverse_iterator) - - cppclass const_iterator(iterator): - pass - - cppclass const_reverse_iterator(reverse_iterator): - pass + bint operator>=(const_reverse_iterator) + cppclass const_reverse_iterator: + const_reverse_iterator() except + + const_reverse_iterator(reverse_iterator&) except + + operator=(reverse_iterator&) except + + const value_type& operator*() + const_reverse_iterator operator++() + const_reverse_iterator operator--() + const_reverse_iterator operator++(int) + const_reverse_iterator operator--(int) + const_reverse_iterator operator+(size_type) + const_reverse_iterator operator-(size_type) + difference_type operator-(iterator) + difference_type operator-(const_iterator) + bint operator==(reverse_iterator) + bint operator==(const_reverse_iterator) + bint operator!=(reverse_iterator) + bint operator!=(const_reverse_iterator) + bint operator<(reverse_iterator) + bint operator<(const_reverse_iterator) + bint operator>(reverse_iterator) + bint operator>(const_reverse_iterator) + bint operator<=(reverse_iterator) + bint operator<=(const_reverse_iterator) + bint operator>=(reverse_iterator) + bint operator>=(const_reverse_iterator) string() except + string(const string& s) except + @@ -47,12 +129,16 @@ cdef extern from "<string>" namespace "std" nogil: iterator begin() const_iterator const_begin "begin"() + const_iterator cbegin() iterator end() const_iterator const_end "end"() + const_iterator cend() reverse_iterator rbegin() const_reverse_iterator const_rbegin "rbegin"() + const_reverse_iterator crbegin() reverse_iterator rend() const_reverse_iterator const_rend "rend"() + const_reverse_iterator crend() const char* c_str() const char* data() @@ -62,6 +148,7 @@ cdef extern from "<string>" namespace "std" nogil: void resize(size_t) except + void resize(size_t, char) except + void shrink_to_fit() except + + void swap(string& other) size_t capacity() void reserve(size_t) except + void clear() @@ -164,6 +251,15 @@ cdef extern from "<string>" namespace "std" nogil: string substr(size_t pos) except + string substr() + # C++20 + bint starts_with(char c) except + + bint starts_with(const char* s) + bint ends_with(char c) except + + bint ends_with(const char* s) + # C++23 + bint contains(char c) except + + bint contains(const char* s) + #string& operator= (const string&) #string& operator= (const char*) #string& operator= (char) |