Home | History | Annotate | Download | only in base

Lines Matching defs:std

44   // TODO(alshabalin): Can't use 'constexpr' with std::move until C++14.
46 : is_null_(false), value_(std::move(value)) {}
48 // TODO(alshabalin): Can't use 'constexpr' with std::forward until C++14.
51 : is_null_(false), value_(std::forward<Args>(args)...) {}
79 // TODO(alshabalin): Can't use 'constexpr' with std::move until C++14.
81 : is_null_(false), value_(std::move(value)) {}
83 // TODO(alshabalin): Can't use 'constexpr' with std::forward until C++14.
86 : is_null_(false), value_(std::forward<Args>(args)...) {}
106 // std::optional documentation:
117 // - All the non-members are in the 'base' namespace instead of 'std'.
134 Init(std::move(other.value()));
139 // TODO(alshabalin): Can't use 'constexpr' with std::move until C++14.
140 Optional(T&& value) : storage_(std::move(value)) {}
142 // TODO(alshabalin): Can't use 'constexpr' with std::forward until C++14.
145 : storage_(base::in_place, std::forward<Args>(args)...) {}
170 InitOrAssign(std::move(other.value()));
175 typename std::enable_if<std::is_same<std::decay<U>, T>::value,
178 InitOrAssign(std::forward<U>(value));
201 constexpr const T&& operator*() const&& { return std::move(value()); }
205 T&& operator*() && { return std::move(value()); }
228 return std::move(storage_.value_);
234 return std::move(storage_.value_);
240 // static_assert(std::is_copy_constructible<T>::value,
242 static_assert(std::is_convertible<U, T>::value,
244 return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
251 // static_assert(std::is_move_constructible<T>::value,
253 static_assert(std::is_convertible<U, T>::value,
255 return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
256 : std::move(value());
265 Init(std::move(other.storage_.value_));
268 other.Init(std::move(storage_.value_));
275 using std::swap;
286 Init(std::forward<Args>(args)...);
298 new (&storage_.value_) T(std::move(value));
305 new (&storage_.value_) T(std::forward<Args>(args)...);
318 Init(std::move(value));
320 storage_.value_ = std::move(value);
484 constexpr Optional<typename std::decay<T>::type> make_optional(T&& value) {
485 return Optional<typename std::decay<T>::type>(std::forward<T>(value));
495 namespace std {
500 return opt == base::nullopt ? 0 : std::hash<T>()(*opt);
504 } // namespace std