The -Vb compatibility options are summarized in the following table: Command-Line Switch BCC64 does not support these compatibility options. Note: Several compatibility options have compiler switches for BCC32 and BCCOSX that begin with -Vb. The compiler reverses the order of Multi-character constants. Use the old Borland type rules for ternary operators. Use old 8.3 search algorithm to locate header files. Use the old Borland rules for 'using' in templates.
#COMPILER BORLAND C CODE#
Uses Microsoft search algorithms to locate the header files.Įmits native code instead of Unicode for multi-byte character.Īllow calling a non-const member function for a const object. Generates all global functions in their own virtual or weak segment. If the for -statement scoping option is enabled, the variable i goes out of scope when processing reaches the end of the block containing the for loop. Because of this, you will get an Undefined Symbol compilation error if you compile this code with this option disabled. If this option is disabled (the default), the variable i goes out of scope when processing reaches the end of the for loop. Int main ( void ) //end of block containing for loop The output of the following code segment changes, depending on the setting of this option: Specifies the scope of variables declared in for loop expressions. Zero-length empty class member functions -VxĮnables new operator names such as 'and', 'or', 'and_eq', 'bitand', and so forth.Default = FalseĮnables most of the compatibility options used with old code: For example, with this option set, the linker does not detect if a call is made to a _fastcall member function with the cdecl calling convention.This option is provided for backward compatibility only it lets you link old library files that you cannot recompile. When this option is set, the compiler disables the distinction of function names where the only possible difference is incompatible code generation options. If you enable the Don't collapse ref-to-ref option, intrr is reported as an error just as it previously would have been an error. Under the previous C++ rules, intrr would be illegal.
6.0 and above) follows these rules by default. The type intrr is legal, the same type as intr under the new C++ rules. The compiler now collapses the two references. The new default behavior is to follow the C++11 rules.
Previously, a reference to a reference was illegal. If this option is true, then such diagraphs are not recognized. Digraphs are two character sequences that stand in for a single character that may be hard to produce on certain keyboards. Default = Falseĭisables the lexical digraph scanner. Default = FalseĮnables all the compatibility -Vxxx options for backward compatibility. When this option is enabled, the compiler allows an empty structure of zero length. Usually the size of a data member in a class definition is at least one byte. When you set this option, the compiler ignores this unused byte for the memory layout and the total size of any derived classes empty base classes do not consume space in derived classes. Usually the size of a class is at least one byte, even if the class does not define any data members. Puts virtual table pointer at front of object layout. This switch should not be used when working with a VCL application. To provide compatibility with Microsoft Visual C++, substitutes _msfastcall for _fastcall calling convention. The compiler typically pushes parameters on the stack from right to left. Old-style explicit template specializationĪllow old-style explicit template specialization.
Enable this option if you need to compile source files that you intend to use with older versions of C++Builder (for example, if you need to work with a DLL that you cannot recompile, or if you have older data files that contain hardwired class layouts). This is a backward compatibility switch that causes the C++ compiler to lay out derived classes the same way it did in older versions of C++Builder. Default = FalseĮxplicit template specialization as member functionĪllow explicit template specializations as member functions. See Common Items on Project Options Pages.Ĭ++ Compatibility Options C++ Compatibility Options 3 -Vb Compiler Options for BCC32/BCCOSX.