1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9// UNSUPPORTED: c++03, c++11, c++14
10// <optional>
11
12// constexpr const T& optional<T>::value() const &;
13
14#include <optional>
15#include <type_traits>
16#include <cassert>
17
18using std::optional;
19
20struct X
21{
22 constexpr int test() const {return 3;}
23 int test() {return 4;}
24};
25
26int main(int, char**)
27{
28 {
29 constexpr optional<X> opt;
30 static_assert(opt.value().test() == 3, "");
31 }
32
33 return 0;
34}
35

source code of libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_const.compile.fail.cpp