is_nullable_pointer

Description

Checks if type T is a pointer-like object which can be compared to std::nullptr_t objects.

Requirements

The type must meet all of the following requirements:

The type T must satisfy the following additional expressions, given two values p and q that are of type T, and that np is a value of std::nullptr_t type:

Expression Effects
T p(np); Afterwards, p is equivalent to nullptr
T(np) a temporary object that is equivalent to nullptr
p = np Must return a T&, and afterwards, p is equivalent to nullptr
p != q Must return a value that is contextually convertible to bool, The effect is !(p == q)
p == np Must return a value that is contextually convertible to bool. The effect is (p == T())
np == p Must return a value that is contextually convertible to bool. The effect is (p == T())
p != np Must return a value that is contextually convertible to bool. The effect is !(p == np)
np != p Must return a value that is contextually convertible to bool. The effect is !(p == np)

Synopsis

TICK_TRAIT(is_nullable_pointer,
    is_equality_comparable<_>,
    is_default_constructible<_>,
    is_copy_constructible<_>,
    is_copy_assignable<_>,
    is_destructible<_>,
    std::is_constructible<_, std::nullptr_t>,
    is_equality_comparable<_, std::nullptr_t>
)
{};