Detects when type T is incomplete. This is true for forward declarations and false for types with a full definition.
Declared in <llvm/ADT/STLExtras.h>
template<typename T>
constexpr bool is_incomplete_v = !is_detected<detail::has_sizeof, T>::value;