blob: 3dc02e9380ee87b829663242b098c19ef3f86ae0 (
plain) (
blame)
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
|
cdef extern from "<utility>" namespace "std" nogil:
cdef cppclass pair[T, U]:
ctypedef T first_type
ctypedef U second_type
T first
U second
pair() except +
pair(pair&) except +
pair(T&, U&) except +
bint operator==(pair&, pair&)
bint operator!=(pair&, pair&)
bint operator<(pair&, pair&)
bint operator>(pair&, pair&)
bint operator<=(pair&, pair&)
bint operator>=(pair&, pair&)
cdef extern from * namespace "cython_std" nogil:
"""
#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
// move should be defined for these versions of MSVC, but __cplusplus isn't set usefully
#include <type_traits>
namespace cython_std {
template <typename T> typename std::remove_reference<T>::type&& move(T& t) noexcept { return std::move(t); }
template <typename T> typename std::remove_reference<T>::type&& move(T&& t) noexcept { return std::move(t); }
}
#endif
"""
cdef T move[T](T)
|