to me it's been a very useful tool for reflection, for instance
if constexpr (requires { foo.someMember; }) { use(foo.hasSomeMember); } else { some_fallback_case(); }
1. Do this in types. 2. Do this without introducing a new scope inside a function.
1. Do this in types. 2. Do this without introducing a new scope inside a function.