Rvalue references were introduced as part of {cpp}11. They are thus a new feature of the language, and are not yet widely understood. Using them is complicated, and code using rvalue references may be difficult to understand. == Noncompliant Code Example ---- std::vector return_vector(void) { std::vector tmp {1,2,3,4,5}; return tmp; } std::vector &&rval_ref = return_vector(); // Noncompliant ---- == Compliant Solution ---- std::vector return_vector(void) { std::vector tmp {1,2,3,4,5}; return tmp; } const std::vector& rval_ref = return_vector(); ----