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
10
11// <type_traits>
12
13
14#include <type_traits>
15#include <cassert>
16
17#include "test_macros.h"
18
19int main(int, char**)
20{
21#ifndef __cpp_lib_is_constant_evaluated
22 // expected-error@+1 {{no member named 'is_constant_evaluated' in namespace 'std'}}
23 bool b = std::is_constant_evaluated();
24#else
25 // expected-error@+1 {{static assertion failed}}
26 static_assert(!std::is_constant_evaluated(), "");
27 // expected-warning@-1 0-1 {{'std::is_constant_evaluated' will always evaluate to 'true' in a manifestly constant-evaluated expression}}
28#endif
29 return 0;
30}
31

source code of libcxx/test/std/utilities/meta/meta.const.eval/is_constant_evaluated.verify.cpp