@@ -21,6 +21,95 @@ ctypedef stdmap[string,double] Composition
2121import numpy as np
2222cimport numpy as np
2323
24+ from libcpp.vector cimport vector
25+
26+ # See https://github.com/cython/cython/pull/6539
27+ # TODO: Replace once Cython >= 3.1.0 is required
28+ cdef extern from " <span>" namespace " std" nogil:
29+ # Only Extent = std::dynamic_extent is supported until Cython can also
30+ # support integer templates. See https://github.com/cython/cython/pull/426
31+ cdef cppclass span[T]:
32+ ctypedef T value_type
33+ ctypedef size_t size_type
34+ ctypedef ptrdiff_t difference_type
35+
36+ size_t extent
37+
38+ cppclass iterator:
39+ iterator() except +
40+ iterator(iterator& ) except +
41+ T& operator* ()
42+ iterator operator++ ()
43+ iterator operator-- ()
44+ iterator operator++ (int )
45+ iterator operator-- (int )
46+ iterator operator+ (size_type)
47+ iterator operator- (size_type)
48+ difference_type operator- (iterator)
49+ difference_type operator- (const_iterator)
50+ bint operator== (iterator)
51+ bint operator== (const_iterator)
52+ bint operator!= (iterator)
53+ bint operator!= (const_iterator)
54+ bint operator< (iterator)
55+ bint operator< (const_iterator)
56+ bint operator> (iterator)
57+ bint operator> (const_iterator)
58+ bint operator<= (iterator)
59+ bint operator<= (const_iterator)
60+ bint operator>= (iterator)
61+ bint operator>= (const_iterator)
62+
63+ cppclass reverse_iterator:
64+ reverse_iterator() except +
65+ reverse_iterator(reverse_iterator& ) except +
66+ T& operator* ()
67+ reverse_iterator operator++ ()
68+ reverse_iterator operator-- ()
69+ reverse_iterator operator++ (int )
70+ reverse_iterator operator-- (int )
71+ reverse_iterator operator+ (size_type)
72+ reverse_iterator operator- (size_type)
73+ difference_type operator- (iterator)
74+ difference_type operator- (const_iterator)
75+ bint operator== (reverse_iterator)
76+ bint operator== (const_reverse_iterator)
77+ bint operator!= (reverse_iterator)
78+ bint operator!= (const_reverse_iterator)
79+ bint operator< (reverse_iterator)
80+ bint operator< (const_reverse_iterator)
81+ bint operator> (reverse_iterator)
82+ bint operator> (const_reverse_iterator)
83+ bint operator<= (reverse_iterator)
84+ bint operator<= (const_reverse_iterator)
85+ bint operator>= (reverse_iterator)
86+ bint operator>= (const_reverse_iterator)
87+
88+ span()
89+ span(T* , size_type) except + # span[It](It, size_type)
90+ span(T* , T* ) except + # span[It, End](It, End)
91+ span(vector& ) # span[U, N](array[T, N]& arr)
92+ span(span& )
93+
94+ T& operator[](ssize_t)
95+
96+ T& back()
97+ iterator begin()
98+ T* data()
99+ bint empty()
100+ iterator end()
101+ span[T] first(size_type)
102+ T& front()
103+ span[T] last(size_type)
104+ reverse_iterator rbegin()
105+ reverse_iterator rend()
106+ size_type size()
107+ span[T] subspan(size_type)
108+ span[T] subspan(size_type, size_type)
109+
110+ cdef size_t dynamic_extent
111+
112+
24113cdef extern from " cantera/cython/funcWrapper.h" :
25114 cdef int translate_exception()
26115
0 commit comments