Learn About Using C++ rvalue References In The C++Builder BCC32 Compiler

BCC32, which is the classic C++Builder 32 bit compiler, includes the use of rvalue references, which allow creating a reference to temporaries. Also, rvalue references avoid unnecessary copying and make possible perfect forwarding functions. This feature is one of the C++11 features.

Rvalue references are a compound type like standard C++ references, which are referred to as lvalue references. An lvalue reference is formed by appending the ampersand character (&) to a type:

The syntax of an rvalue reference is to add && after a type:

An rvalue reference behaves like an lvalue reference, except that you can bind an rvalue reference to a temporary — an rvalue.

In the example above, SomeClass() is not bound to an identifier, so it is an rvalue and can be bound to an rvalue reference — but not an lvalue reference.

Here is the above sample code in C++Builder.

Find out more about C++ rvalue References over in the Embarcadero DocWiki.