Just out of curiosity: would this also work?

template<typename _Tp, typename _Disc>
struct _Absent {};

template<bool _Present, typename _Tp, typename _Disc = decltype([]{})>
using __maybe_present_t = __conditional_t<_Present, _Tp, _Absent<_Tp,
_Disc>>;

That would avoid having to type 0, 1, ... manually.

Reply via email to