diff options
Diffstat (limited to 'Cython/Includes/libcpp/optional.pxd')
-rw-r--r-- | Cython/Includes/libcpp/optional.pxd | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Cython/Includes/libcpp/optional.pxd b/Cython/Includes/libcpp/optional.pxd new file mode 100644 index 000000000..284dfcd6e --- /dev/null +++ b/Cython/Includes/libcpp/optional.pxd @@ -0,0 +1,34 @@ +from libcpp cimport bool + +cdef extern from "<optional>" namespace "std" nogil: + cdef cppclass nullopt_t: + nullopt_t() + + cdef nullopt_t nullopt + + cdef cppclass optional[T]: + ctypedef T value_type + optional() + optional(nullopt_t) + optional(optional&) except + + optional(T&) except + + bool has_value() + T& value() + T& value_or[U](U& default_value) + void swap(optional&) + void reset() + T& emplace(...) + T& operator*() + #T* operator->() # Not Supported + optional& operator=(optional&) + optional& operator=[U](U&) + bool operator bool() + bool operator!() + bool operator==[U](optional&, U&) + bool operator!=[U](optional&, U&) + bool operator<[U](optional&, U&) + bool operator>[U](optional&, U&) + bool operator<=[U](optional&, U&) + bool operator>=[U](optional&, U&) + + optional[T] make_optional[T](...) except + |