reasons? VCL's memory management is extremely unclear, but it's mostly reference counted (explains the heap-only restriction). VCL objects can't be stack allocated, because. Templates were inconsistently bolted onto the VCL, so usually you've got TObject* pointers and casting. VCL makes the STL look positively dazzling. Oh yeah, and you can't use C libraries built with MinGW (C++Builder uses its own object file format), which means you're stuck with C89 (and a little bit of C99). If you're trying to use a regular C++ library-assuming, of course, that it sticks to C++98 features and doesn't use SFINAE-then you usually only have to edit the library's code a bit to work around C++Builder's quirks and you're set.
#Borland c builder install#
Unless, of course, you manage to fuck up the install process (quite easy) in which case you'll be editing a few registry keys (yup). Using external libraries is easy enough as long as they're packaged as C++Builder or Delphi components. The debugger is nice enough (it's basically a really shitty reimplementation of 1/10th of GDB, with a more-or-less functional GUI slapped on top) until it crashes, which thankfully is much rarer than the compiler. If you have a syntax error, you can basically guarantee that it won't report the correct error location (usually it'll give you some system header files). The compiler ICEs if you look at it funny and the general solution to fixing a build problem is to restart the IDE.
![borland c builder borland c builder](https://www.tenouk.com/Borland_files/cppcompilerborland001.png)
The 64-bit compiler is a fork of an older version of clang, so you get more C++11 support but some of the Embarcadero extensions are missing (yeah, code isn't even syntactically portable between 32-bit and 64-bit C++Builder). Don't expect to be able to use many open-source C++ libraries. The 32-bit compiler mostly supports C++98, with a couple C++11 features and a few missing C++98 ones. The IDE is alright, except the IntelliSense, if you can even call it that, becomes unusably slow in sufficiently large (really, just non-trivial) projects. I use it for a living, and I cannot recommend that piece of shit.