Home | History | Annotate | Download | only in over.built
      1 // RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s
      2 // expected-no-diagnostics
      3 
      4 struct Variant {
      5   template <typename T> operator T();
      6 };
      7 
      8 Variant getValue();
      9 
     10 void testVariant() {
     11   bool ret1 = getValue() || getValue();
     12   bool ret2 = getValue() && getValue();
     13   bool ret3 = !getValue();
     14 }
     15 
     16 struct ExplicitVariant {
     17   template <typename T> explicit operator T();
     18 };
     19 
     20 ExplicitVariant getExplicitValue();
     21 
     22 void testExplicitVariant() {
     23   bool ret1 = getExplicitValue() || getExplicitValue();
     24   bool ret2 = getExplicitValue() && getExplicitValue();
     25   bool ret3 = !getExplicitValue();
     26 }
     27