10 template<
typename A,
typename U>
14 template<
typename A,
typename U>
19 template<
typename A,
typename U>
24 template<
typename A,
typename U>
28 template<
typename A,
typename U>
32 template<
typename A,
typename U>
41 template<
typename T,
unsigned int S,
typename U,
typename A>
44 template<
typename T,
unsigned int S,
typename U,
typename A>
47 template<
typename T,
unsigned int S,
typename U,
typename A>
50 template<
typename T,
unsigned int S,
typename U,
typename A>
53 template<
typename T,
unsigned int S,
typename A>
57 template<u
int64_t RequiredSize, u
int64_t Prov
idedSize>
58 void check_size() {
static_assert( (ProvidedSize >= RequiredSize),
"Failed to reserve enough space in fc::fwd<T,S>" ); }
60 template<
typename T,
unsigned int S,
typename A>
61 template<
typename...
U>
64 new (
this)
T( fc::forward<U>(u)... );
67 template<
typename T,
unsigned int S,
typename A>
72 template<
typename T,
unsigned int S,
typename A>
77 template<
typename T,
unsigned int S,
typename A>
80 new (
this)
T( fc::move(*
f) );
85 template<
typename T,
unsigned int S,
typename A>
87 template<
typename T,
unsigned int S,
typename A>
90 template<
typename T,
unsigned int S,
typename A>
92 template<
typename T,
unsigned int S,
typename A>
94 template<
typename T,
unsigned int S,
typename A>
97 template<
typename T,
unsigned int S,
typename A>
101 template<
typename T,
unsigned int S,
typename A>
105 template<
typename T,
unsigned int S,
typename A>
108 return **
this = fc::forward<U>(u);
111 template<
typename T,
unsigned int S,
typename A>
113 return **
this = fc::move(*u);
115 template<
typename T,
unsigned int S,
typename A>
Used to forward declare value types.
const T * operator->() const
auto operator+(const fwd< T, S, A > &x, U &&u) -> typename detail::add< T, U >::type
auto operator-(const fwd< T, S, A > &x, U &&u) -> typename detail::sub< T, U >::type
datastream< ST > & operator<<(datastream< ST > &s, const sysio::chain::may_not_exist< T > &v)
datastream< ST > & operator>>(datastream< ST > &s, sysio::chain::may_not_exist< T > &v)
#define T(meth, val, expected)
decltype(*((A *) 0)+=*((typename fc::remove_reference< U >::type *) 0)) type
decltype(*((A *) 0)+*((typename fc::remove_reference< U >::type *) 0)) type
decltype(*((A *) 0)<< *((typename fc::remove_reference< U >::type *) 0)) type
decltype(*((A *) 0) -=*((typename fc::remove_reference< U >::type *) 0)) type
decltype(*((A *) 0) - *((typename fc::remove_reference< U >::type *) 0)) type