Вызов константной функции-члена с помощью std::function
#include <functional>
struct A {
auto operator()() { return 1; }
auto operator()() const { return 2; }
};
int main() {
const std::function<int()> f = A{};
return f();
}
Почему вызывается неконстантная 1 версия, хотя f константа? Как можно получить ожидаемый вызов?