Concept matching types with optional‐like semantics (has_value/value), such as std::optional, folly::Optional, and Thrift optional fields.
Synopsis
Declared in <folly/GetRefUtil.h>
template<typename T>
concept IsOptionalLike = requires {
typename T::value_type;
} && requires(const T t) {
{ *t } ‐> std::convertible_to<typename T::value_type>;
{ t.has_value() } ‐> std::same_as<bool>;
};
Created with MrDocs