Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

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:

[crayon-676df080d07ae398498748/]

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

[crayon-676df080d07b9097587471/]

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

[crayon-676df080d07bd351907280/]

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.

Up next: whether you’re a beginner or a professional, this compiler explorer tutorial will help you remember the language features essential in C++ programming.

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

Exit mobile version