次のコードは期待どおりに機能します。
void foo(auto const &){}
auto const rng{ranges::view::all(v)};
ranges::for_each(rng, [](auto const & r){
foo(r);
});
ただし、次のとおりです。
void foo(auto const &){}
auto const rng{ranges::view::all(v)};
ranges::for_each(rng, &foo);
コンパイルエラーが発生します:
template argument deduction/substitution failed:
couldn't deduce template parameter 'F'
ソースを見てみましたが、正直なところ問題がわかりませんでした。