Skip to main content
Journey Uncommon Logo
JourneyUncommon
mediumC++perfect forwarding std::forwardSingle-choice MCQ

Why does the inner forwarding wrapper below fail to perfectly forward, collapsing every argument to an lvalue regardless of how `outer` was called?

template <typename T> void sink(T&&); template <typename... Args> void outer(Args&&... args) { auto inner = [&](auto&&... xs) { (sink(std::forward<Args>(xs)), ...); }; inner(std::forward<Args>(args)...); }