I've never used std::get_if
, and since its name is different from std::get
, I don't see a reason why its argument should be a pointer¹ (whereas std::get
has a by-reference parameter).
¹If it was named std::get
too, then overload resolution would be a reason enough.
Yes, my question could be duped to the question Is it absolutely necessary for std::any_cast() and std::get_if(std::variant) to take pointer as an argument?, but the point is that there's no answer there that addresses std::get_if
vs std::get
, just one comment; the only answer concentrates on std::any_cast
.