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