// // Tests for // explicit operator bool() const; // #include #include #include #include "test_utils.h" #define _assert(...) T_ASSERT_TRUE((__VA_ARGS__), # __VA_ARGS__) struct T { }; template static void tests() { { test_bounded_ptr p = nullptr; if (p) { _assert(false); } _assert(!p); } { T t; test_bounded_ptr p(&t, &t, &t + 1); if (p) { } else { _assert(false); } _assert(!!p); } } T_DECL(operator_bool, "bounded_ptr.operator.bool", T_META_TAG_VM_PREFERRED) { tests(); tests(); tests(); tests(); }