https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100384
--- Comment #2 from Albert Astals Cid <aacid at kde dot org> --- People that know more C++ than me, told me std::visit appears unconstrained to Variants...&& being actual std::variants (in case you inherited one, I guess), so std::visit, as an unconstrained perfect forwarder will win every overload set ranking. And std::visit is brought in by ADL via std::vector it's a misfeature, this has been adopted in C++23 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2162r2.html So I guess the proper resolution for this issue would be "not a bug", but will leave you to decide on it :)