1 #pragma once
2 
3 namespace rc {
4 
5 /// Tag struct that can be used to construct different types to an uninitialized
6 /// or empty state.
7 struct NothingType {
8   /// Explicit conversion to false.
9   explicit operator bool() const { return false; }
10 };
11 
12 /// Singleton NothingType value.
13 constexpr NothingType Nothing = NothingType();
14 
15 } // namespace rc
16