| Server IP : 217.160.0.135 / Your IP : 216.73.217.113 Web Server : Apache System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64 User : sws1074145052 ( 1074145052) PHP Version : 8.3.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /lib/python3/dist-packages/pythran/pythonic/include/types/ |
Upload File : |
#ifndef PYTHONIC_INCLUDE_TYPES_ASSIGNABLE_HPP
#define PYTHONIC_INCLUDE_TYPES_ASSIGNABLE_HPP
#include <type_traits>
PYTHONIC_NS_BEGIN
struct dummy {
};
template <class T>
struct assignable {
using type = T;
};
template <class T>
struct assignable<T const> : assignable<T> {
};
template <class T>
struct assignable<T const &> : assignable<T> {
};
template <class T>
struct assignable<T &> : assignable<T> {
};
template <class T>
struct assignable<T &&> : assignable<T> {
};
template <class T>
struct lazy : assignable<T> {
}; // very conservative
template <class T>
struct assignable_noescape : assignable<T> {
};
template <class T>
struct assignable_noescape<T const> : assignable_noescape<T> {
};
template <class T>
struct assignable_noescape<T const &> : assignable_noescape<T> {
};
template <class T>
struct assignable_noescape<T &> : assignable_noescape<T> {
};
template <class T>
struct assignable_noescape<T &&> : assignable_noescape<T> {
};
template <class T>
struct returnable : assignable<T> {
};
template <class T>
struct returnable<T const &> : assignable<typename returnable<T>::type> {
};
template <class T>
struct returnable<T &> : assignable<typename returnable<T>::type> {
};
template <class T>
struct returnable<T &&> : assignable<typename returnable<T>::type> {
};
PYTHONIC_NS_END
#endif