> > This is subjectively horrible and, more objectively, would create > > longer mangled names and additional RTTI.
> Yeah, it's a neat trick but probably not appropriate to use within the > standard library. I understand. I was genuinely curious about whether this would do the trick. In fact, if I'm not mistaken, the whole thing could be simplified to: template<bool _Present, typename _Tp, typename _Absent = decltype([]{})> using __maybe_present_t = __conditional_t<_Present, _Tp, _Absent>;