brintos

brintos / llvm-project-archived public Read only

0
0
Text · 914 B · 22b10b6 Raw
25 lines · cpp
1// RUN: %clang_cc1 -std=c++11 -verify -fsyntax-only %s2 3struct S {4  constexpr S(bool b) : b(b) {}5  constexpr explicit operator bool() const { return b; }6  bool b;7};8struct T {9  constexpr operator int() const { return 1; }10};11struct U {12  constexpr operator int() const { return 1; } // expected-note {{candidate}}13  constexpr operator long() const { return 0; } // expected-note {{candidate}}14};15 16static_assert(S(true), "");17static_assert(S(false), "not so fast"); // expected-error {{not so fast}}18static_assert(T(), "");19static_assert(U(), ""); // expected-error {{ambiguous}}20 21static_assert(false, L"\x14hi" // expected-warning {{encoding prefix 'L' on an unevaluated string literal has no effect and is incompatible with c++2c}} \22                               // expected-error {{invalid escape sequence '\x14' in an unevaluated string literal}}23                     "!"24                     R"x(")x");25