Open
Description
The implementation of discriminated union relies on std::invoke
(i.e. without multi-dispatch) for the purpose of implementing invoke
, which demonstrates that we should not try to add multi-dispatch to std::invoke
. Basically invoke
(with multi-dispatch) has proven to be higher level than std::invoke
, hence the former name is wrong (or confusing, at least).
This implies that what we currently call invoke
should be called something else, perhaps apply
or a new function dispatch
. This also applies to member functions.