summaryrefslogtreecommitdiff
path: root/Cython/Includes/libcpp/optional.pxd
diff options
context:
space:
mode:
Diffstat (limited to 'Cython/Includes/libcpp/optional.pxd')
-rw-r--r--Cython/Includes/libcpp/optional.pxd34
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 +