By: David Intersimone
Abstract: David I discusses Boost Libraries support in C++Builder 64-bit
This is a copy of a blog post from David I's Sip from the Firehose blog. Click to blog post title below to see the original blog post and comments.
As I mentioned in my Happy C++mas December 1st blog, we are including two versions of the Boost libraries for C++Builder XE3 in the upcoming 64-bit compiler release, Boost version 1.50.0 (for 64-bit target platforms) and Boost version 1.39 (for 32-bit target platforms). Our goal is to unify our 32-bit and 64-bit compilers and libraries in the future, but for now we will live in a hybrid world. The Boost C++ Community recently announced the release Boost libraries 1.52.0 (you should also read the special note about this release and future releases). When we build products that include external moving parts, we have to choose a version to include in our release and cannot always synchronize everything at the same time. With our C++11 compatible 64-bit compiler, it should be much easier to provide updated standard and Boost libraries in the future.
The Boost libraries are a set of C++ libraries that significantly expand the language using template metaprogramming. For a 64-bit Windows install, you get both Boost 1.50.0 (for 64-bit Windows applications) and Boost 1.39 (for 32-bit Windows applications). In addition, for Boost Version 1.39, separate libraries are installed for 32-bit Windows and for OS X. Binaries are built for functions that require them. Include paths are set for the Boost libraries, and any necessary libraries should be automatically linked because of #pragma link lines in the Boost code. You can use the Boost C++ libraries in your VCL and FireMonkey applications.
The following table shows the Boost Libraries Versions that are used on specific target platforms and installed on specific development systems with RAD Studio XE3 and C++Builder XE3:
Boost Version 1.39 Installation Information
Where <n.n> = the RAD Studio or C++Builder release number. For XE3 this is 10.0.
Including the Boost Libraries for Windows
A C++ application uses the correct version of Boost to match the target platform for an application. For example, if your application has a 64-bit Windows target platform, Boost version 1.50.0 is used. If you set a 32-bit Windows target platform, Boost version 1.39 is used.
In a Boost 1.39 and 1.50.0 installation, the Boost minmax extensions are installed in the algorithm directory. For example, to use minmax in an application that targets 32-bit Windows/OSX and 64-bit Windows, your code should specify:
This command includes the minmax library that is part of the algorithm directory. The path to the Boost libraries is specified in the following IDE environment variables:
These variables are set using the Tools > Options > Environment Options > Environment Variables dialog box in the IDE.
Including the Boost Libraries for Mac OS X Applications
For Mac OS X application development, you can use the Boost libraries for OS X, which are installed by default in the program files on the development computer at:
Using the same #include statement shown in the minmax example above also includes the Boost Libraries for Mac OS X in your project.
CodeRage 7 C++ Conference, December 10-12, 2012
The CodeRage 7 C++ conference starts next Monday, December 10, 2012 at 6am Pacific Standard Time (14:00 UTC). There are 3 days of C++ sessions including my special live, online conversation with Bjarne Stroustrup at 8am PST (16:00 UTC) on Monday. Some of the C++ sessions you won’t want to miss are included in my blog post on November 21 - http://blogs.embarcadero.com/davidi/2012/11/21/41993.
During the first 25 days of December leading up to Christmas, I will blog about the upcoming release of the C++Builder 64-bit compiler for Microsoft Windows and C++Builder XE3support for building VCL and FireMonkey 2 applications.
Free 30-day trial! Develop for Windows, Mac, Android, iOS, devices and gadgets!
More social media choices:
C++Builder on Google+
@RADtools on Twitter
Server Response from: ETNASC02