aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/libcpp/utility.pxd
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)