The 25 days of C++mas - December 22 - C++ standard support in C++Builder 32 and 64 bit compilers

Posted by on in Blogs
C++Builder XE3 includes 3 C++ compilers:  bcc32.exe (32-bit Windows), bccosx.exe (32-bit Mac OS X) and bcc64.exe (64-bit Windows).  BCC32's C++0x language enhancements were first added in C++Builder 2009.  C++Builder XE3's new C++11 64-bit Windows compiler supports the same C++11 language standard as the clang compiler (version 2.9, 3.0 and 3.1).  The following is a list of C++11 language features that are supported in all three C++Builder XE3 compilers (command line and integrated compilers). Note: the list is subject to change based on the release and update/hotfix builds - please refer to the Embarcadero DocWiki which will always have the latest information and documentation.

C++ Language support by compiler
The following is a partial listing of the C++ 0x and C++11 language support included in the bcc32, bccosx and bcc64 compilers. I will keep updating this list until it contains all of the C++11 standard items and Yes/No/Partial support for each compiler.

    Language Feature bcc32 bccosx bcc64
    C++ 11
    Rvalue references Yes Yes Yes
    Initialization of class objects by rvalues No No Yes
    Non-static data member initializers No No Yes
    Variadic templates No No Yes
    Initializer lists No No Yes
    Static assertions Yes Yes Yes
    auto-typed variables No No Yes
    Multi-declarator auto No No Yes
    New function declarator syntax No No Yes
    Lambda expressions No No Yes
    Declared type of an expression Yes Yes Yes
    Incomplete return types No No Yes
    Right angle brackets No No Yes
    Default template arguments for function templates No No Yes
    Solving the SFINAE problem for expressions No No Yes
    Template aliases No No Yes
    Extern templates Yes Yes Yes
    Null pointer constant No No Yes
    Strongly-typed enums Yes Yes Yes
    Forward declarations for enums Yes Yes Yes
    Generalized attributes No No No
    Generalized constant expressions No No Yes
    Alignment support "alignof" "alignof" Yes
    Delegating Constructors No No Yes
    Inheriting Constructors No No Yes
    Explicit conversion operators Yes Yes Yes
    New character types Yes Yes Yes
    Unicode string literals No No ?
    Raw string literals No No Yes
    Universal character name literals ? ? ?
    User-defined literals No No No
    Standard Layout Types ? ? ?
    Defaulted and deleted functions No No Yes
    Extended friend declarations No No Yes
    Extending sizeof No No Yes
    Inline namespaces No No Yes
    Unrestricted unions No No Yes
    Local and unnamed types as template arguments No No Yes
    Range-based for No No Yes
    Explicit virtual overrides No No Yes
    Minimal support for garbage collection and reachability-based leak detection No No ?
    Allowing move constructors to throw [noexcept] No No Yes
    Defining move special member functions No No ?
    Concepts [not part of C++11] No No No
    Sequence points No No No
    Atomic operations No No ?
    Strong Compare and Exchange No No ?
    Bidirectional Fences No No ?
    Memory model No No No
    Data-dependency ordering: atomics and memory model No No No
    Propagating exceptions No No ?
    Abandoning a process and at_quick_exit No No No
    Allow atomics use in signal handlers No No ?
    Thread-local storage No No No
    Dynamic initialization and destruction with concurrency No No No
    C99 Features in C++11
    __func__ predefined identifier No No No
    C99 preprocessor No No No
    long long Yes Yes Yes
    Extended integral types No No No

Comparisons with other C++11 compilers

There is documentation on the internet for several C++ compilers that lists the C++11 compatibility results for current and past releases. I make no claim to the quality or completeness of the C++11 language compliance for any compilers. I include the links so that you can do your own investigations and comparisons.

C++11 compliance

I am working with our R&D, Q/A and Product Management team to create a document and site where you can explore the C++11 language compliance results based on our testing using the Plum Hall C++ validation suite (stay tuned in January for additional details).

Watch/Download the C++Builder 64-bit Compiler Preview Video

Additional details about the 64-bit C++Builder compiler are available in the preview video.  Watch the C++ 64-bit compiler preview video on YouTube at You can also download the MP4 video file at  The preview video is 9 minutes long.

Try the C++Builder 64-bit compiler

The C++Builder XE3 and RAD Studio XE3 free trial downloads have been updated to include the new C++Builder 64-bit compiler.  Trial downloads are available at

Happy C++mas!

During the first 25 days of December leading up to Christmas, I will blog about the release of the C++Builder 64-bit compiler for Microsoft Windows and C++Builder XE3 support for building VCL and FireMonkey 2 applications.
Gold User, Rank: 1, Points: 2466
David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.
Comments are not available for public users. Please login first to view / add comments.