Lines Matching refs:EvilBool
26 struct EvilBool { struct
29 EvilBool(EvilBool const&) = default; argument
30 EvilBool(EvilBool&&) = default;
32 friend EvilBool operator!(EvilBool const& other) { in operator !()
34 return EvilBool{!other.value}; in operator !()
38 friend struct MoveOnlyCallable<EvilBool>;
39 friend struct CopyCallable<EvilBool>;
40 friend struct NoExceptCallable<EvilBool>;
42 constexpr explicit EvilBool(bool x) : value(x) {} in EvilBool() argument
43 EvilBool& operator=(EvilBool const& other) = default;
49 int EvilBool::bang_called = 0; argument
181 using T = CopyCallable<EvilBool>; in return_type_tests()
183 static_assert(is_same<decltype(ret()), EvilBool>::value, ""); in return_type_tests()
184 EvilBool::bang_called = 0; in return_type_tests()
186 assert(EvilBool::bang_called == 1); in return_type_tests()
189 assert(EvilBool::bang_called == 2); in return_type_tests()
416 using T = NoExceptCallable<EvilBool>; in call_operator_noexcept_test()