Can someone familiar with modern C++ explain the type mechanics of std::visit on line 14? In particular, it seems the “auto” parameter of the lambda expression could stand in for either type in the variant, dependent on its runtime value, but I have always thought of “auto” as a compile-time mechanism.
Is the “auto” in this case being filled in by some compiler-generated proxy type that can dispatch any common operation available across all variants?