Fix incorrect example and inconsistent forwarding references section.

This commit is contained in:
Anthony Calandra
2019-06-13 21:52:52 -04:00
parent 288c3b557c
commit 0bb3f8dea2
2 changed files with 10 additions and 2 deletions

View File

@@ -108,8 +108,9 @@ f(x); // deduces as f(int&)
int& y = x; int& y = x;
f(y); // deduces as f(int& &&) => f(int&) f(y); // deduces as f(int& &&) => f(int&)
int&& z = 0; int&& z = 0; // NOTE: `z` is an lvalue with type `int&&`.
f(z); // deduces as f(int&& &&) => f(int&&) f(z); // deduces as f(int&& &) => f(int&&)
f(std::move(z)); // deduces as f(int&& &&) => f(int&&)
``` ```
See also: [`std::move`](#stdmove), [`std::forward`](#stdforward), [`rvalue references`](#rvalue-references). See also: [`std::move`](#stdmove), [`std::forward`](#stdforward), [`rvalue references`](#rvalue-references).

View File

@@ -696,6 +696,13 @@ void f(T&& t) {
int x = 0; int x = 0;
f(0); // deduces as f(int&&) f(0); // deduces as f(int&&)
f(x); // deduces as f(int&) f(x); // deduces as f(int&)
int& y = x;
f(y); // deduces as f(int& &&) => f(int&)
int&& z = 0; // NOTE: `z` is an lvalue with type `int&&`.
f(z); // deduces as f(int&& &) => f(int&&)
f(std::move(z)); // deduces as f(int&& &&) => f(int&&)
``` ```
See also: [`std::move`](#stdmove), [`std::forward`](#stdforward), [`rvalue references`](#rvalue-references). See also: [`std::move`](#stdmove), [`std::forward`](#stdforward), [`rvalue references`](#rvalue-references).