Daily bit(e) of C++ | std::reference_wrapper, std::ref, std::cref
Daily bit(e) of C++ #430, Indirection wrapper that can force reference semantics for APIs that default to a copy: std::reference_wrapper.
The std::reference_wrapper is a simple indirection wrapper that can implicitly convert to the wrapped type.
std::reference_wrapper has special interactions with std::make_pair and std::make_tuple (where the type is deduced as T&) and can force reference semantics for APIs where the default behaviour involves a copy.