156 "not_null<T>: T must be comparable to nullptr");
159 "not_null<T>: T must not be a reference type");
174 if (
mPtr ==
nullptr) {
207 if (ptr ==
nullptr) {
244 template<
typename U = T>
257 return mPtr == other.get();
263 return mPtr != other.get();
269 return mPtr == other;
275 return mPtr != other;
281 return mPtr < other.get();
287 return mPtr <= other.get();
293 return mPtr > other.get();
299 return mPtr >= other.get();
308template<
typename T,
typename U>
310 return lhs == rhs.get();
314template<
typename T,
typename U>
316 return lhs != rhs.get();
FL_STATIC_ASSERT(detail::is_comparable_to_nullptr< T >::value, "not_null<T>: T must be comparable to nullptr")
constexpr not_null(const not_null &other) FL_NOEXCEPT=default
constexpr bool operator<(const not_null< U > &other) const FL_NOEXCEPT
constexpr const T & get() const FL_NOEXCEPT
constexpr bool operator==(const not_null< U > &other) const FL_NOEXCEPT
constexpr bool operator!=(const not_null< U > &other) const FL_NOEXCEPT
constexpr auto operator[](fl::size_t index) const FL_NOEXCEPT -> decltype(fl::declval< U >()[index])
not_null & operator=(fl::nullptr_t) FL_NOEXCEPT=delete
constexpr bool operator<=(const not_null< U > &other) const FL_NOEXCEPT
not_null & operator=(T ptr) FL_NOEXCEPT
not_null(fl::nullptr_t) FL_NOEXCEPT=delete
not_null(const not_null< U > &other) FL_NOEXCEPT
constexpr bool operator!=(U other) const FL_NOEXCEPT
constexpr T operator->() const FL_NOEXCEPT
constexpr bool operator==(U other) const FL_NOEXCEPT
not_null & operator=(not_null &&other) FL_NOEXCEPT=default
FL_STATIC_ASSERT(!detail::is_reference< T >::value, "not_null<T>: T must not be a reference type")
constexpr not_null(not_null &&other) FL_NOEXCEPT=default
not_null() FL_NOEXCEPT=delete
constexpr bool operator>=(const not_null< U > &other) const FL_NOEXCEPT
constexpr auto operator*() const FL_NOEXCEPT -> decltype(*fl::declval< T >())
constexpr bool operator>(const not_null< U > &other) const FL_NOEXCEPT
not_null & operator=(const not_null &other) FL_NOEXCEPT=default
void not_null_assert_failed(const char *message)
Compile-time linker keep-alive hook for a single fl::Bus.
decltype(nullptr) nullptr_t
integral_constant< bool, true > true_type
add_rvalue_reference< T >::type declval() FL_NOEXCEPT
integral_constant< bool, false > false_type
add_rvalue_reference< T >::type declval() FL_NOEXCEPT
FASTLED_FORCE_INLINE bool operator!=(const CRGB &lhs, const CRGB &rhs) FL_NOEXCEPT
Check if two CRGB objects do not have the same color data.
FASTLED_FORCE_INLINE bool operator==(const CRGB &lhs, const CRGB &rhs) FL_NOEXCEPT
Check if two CRGB objects have the same color data.
Base definition for an LED controller.
Portable compile-time assertion wrapper.
static fl::false_type test(...) FL_NOEXCEPT
static auto test(int) FL_NOEXCEPT -> decltype(fl::declval< U >()==nullptr, fl::true_type{})
static auto test(int) FL_NOEXCEPT -> decltype(*fl::declval< U >(), fl::true_type{})
static fl::false_type test(...) FL_NOEXCEPT