Loading...
// // Tests for // explicit operator bool() const; // #include <libkern/c++/bounded_ptr.h> #include <darwintest.h> #include <darwintest_utils.h> #include "test_utils.h" #define _assert(...) T_ASSERT_TRUE((__VA_ARGS__), # __VA_ARGS__) struct T { }; template <typename T> static void tests() { { test_bounded_ptr<T> p = nullptr; if (p) { _assert(false); } _assert(!p); } { T t; test_bounded_ptr<T> 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<T>(); tests<T const>(); tests<T volatile>(); tests<T const volatile>(); } |