fork download
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5. static const auto a = [] ()->bool { return std::cout << 'A' ; } ;
  6. static const auto b = [] ()->bool { return std::cout << 'B' ; } ;
  7. static const auto c = [] ()->bool { return std::cout << 'C' ; } ;
  8. static const auto newline = [] { std::cout << '\n' ; } ;
  9.  
  10. ( a() || b() || c() ) ; newline() ; // A
  11. ( !a() || b() || c() ) ; newline() ; // AB
  12. ( !a() || !b() || c() ) ; newline() ; // ABC
  13. newline() ;
  14.  
  15. ( a() && b() && c() ) ; newline() ; // ABC
  16. ( a() && !b() && c() ) ; newline() ; // AB
  17. ( !a() && b() && c() ) ; newline() ; // A
  18. newline() ;
  19.  
  20. // && has higher precedence; in x || y&&z, x is sequenced before y&&z
  21. ( a() || b() && c() ) ; newline() ; // A
  22. ( !a() || b() && c() ) ; newline() ; // ABC
  23. ( !a() || !b() && c() ) ; newline() ; // AB
  24. newline() ;
  25.  
  26. // && has higher precedence; in x&&y || z, x&&y is sequenced before z
  27. ( a() && b() || c() ) ; newline() ; // AB
  28. ( !a() && b() || c() ) ; newline() ; // AC
  29. ( a() && !b() || c() ) ; newline() ; // ABC
  30. }
  31.  
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
A
AB
ABC

ABC
AB
A

A
ABC
AB

AB
AC
ABC