Код: Выделить всё
inline constexpr auto makeFoo = [](auto const& x) {
return getFoo(x);
};
inline constexpr auto getFoo = [](int const&) {
return 1;
};
int bar() {
return makeFoo(32);
}
Я понимаю, что на основе «неформального» понимания двухфазовых имен
Код: Выделить всё
makeFoo
when the call makeFoo(32) is seen, the lambda's operator() is intantiated with auto = int, so the second-phase lookup Для неквалифицированного имени Getfoo < /code> происходит; < /li>
Это, однако, только ADL, поэтому он не найдет getFoo < /code>, потому что это название лямбды, а не функции. Объяснение?>
Подробнее здесь: https://stackoverflow.com/questions/795 ... -delclared