Lines Matching refs:optional
31 std::optional<T> return_optional() {} in return_optional()
33 static_assert(has_or_else<std::optional<int>&, decltype(return_optional<int>)>);
34 static_assert(has_or_else<std::optional<int>&&, decltype(return_optional<int>)>);
35 static_assert(!has_or_else<std::optional<MoveOnly>&, decltype(return_optional<MoveOnly>)>);
36 static_assert(has_or_else<std::optional<MoveOnly>&&, decltype(return_optional<MoveOnly>)>);
37 static_assert(!has_or_else<std::optional<NonMovable>&, decltype(return_optional<NonMovable>)>);
38 static_assert(!has_or_else<std::optional<NonMovable>&&, decltype(return_optional<NonMovable>)>);
40 std::optional<int> take_int(int) { return 0; } in take_int()
43 static_assert(!has_or_else<std::optional<int>, decltype(take_int)>);
44 static_assert(!has_or_else<std::optional<int>, decltype(take_int_return_void)>);
45 static_assert(!has_or_else<std::optional<int>, int>);
49 std::optional<int> opt; in test()
50 assert(opt.or_else([] { return std::optional<int>{0}; }) == 0); in test()
54 return std::optional<int>{}; in test()
58 std::optional<MoveOnly> opt; in test()
59 opt = std::move(opt).or_else([] { return std::optional<MoveOnly>{MoveOnly{}}; }); in test()
62 return std::optional<MoveOnly>{}; in test()