xtd 1.0.0
Loading...
Searching...
No Matches
optional.hpp
Go to the documentation of this file.
1
3#pragma once
5#define __XTD_STD_INTERNAL__
7#undef __XTD_STD_INTERNAL__
9
10#include <optional>
12
14namespace xtd {
25 template<typename type_t>
26 using optional = std::optional<type_t>;
27}
28
33template<typename optional_t, typename default_value_t>
34optional_t operator |(const xtd::optional<optional_t>& optional, default_value_t&& default_value) {
35 return optional.value_or(std::forward<default_value_t>(default_value));
36}
37
42template<typename optional_t, typename default_value_t>
43xtd::optional<optional_t>& operator |=(xtd::optional<optional_t>& optional, default_value_t&& default_value) {
44 if (!optional) optional = std::forward<default_value_t>(default_value);
45 return optional;
46}
Contains generic stream output methods.
std::optional< type_t > optional
Represents the optional alias on std::optional.
Definition optional.hpp:26
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
xtd::optional< optional_t > & operator|=(xtd::optional< optional_t > &optional, default_value_t &&default_value)
Sets the default value if the contained value of specified optional i empty (equal to xtd::nullopt)....
Definition optional.hpp:43
optional_t operator|(const xtd::optional< optional_t > &optional, default_value_t &&default_value)
Gets the contained value of specified optional if available; otherwhise the specified default_value.
Definition optional.hpp:34