"hello world"
article in Tech programming

C++ boost notes

C / C++ - libraries, tips, tricks and gotchas - Dave Horner's Website

Boost C++ Libraries
Boost Library Documentation - docs for each of the libraries included.
Boost Library Incubator | Growing New C++ Libraries
Comparing the C++ Standard and Boost
Installing Boost 1.53 (Ubuntu 12.04, Fedora) « Particle Physics and Code - includes a quick sample of Boost.MPI.
Using CMake to build a cross-platform project with a Boost dependency | C++ Rocks
The C++ and Boost Code Shop: Getting Started with Boost - Boost 1.35 walkthrough
Using Boost Libraries in Windows Store and Phone Applications - Visual C++ Team Blog - Site Home - MSDN Blogs


getting boost's architecture right

c++ - How do I build boost universal libraries for x86 and x64 architecture? - Stack Overflow - Add architecture=combined to build both Intel and PowerPC. Add address-model=32_64 to build both x86 and x64 in one package.
Developing SQL World: Building Boost 1.34 for x86, x64 and IA64


The C++ Boost Libraries (Part 1 – Introduction) | Life of Andrew - introduces the boost::logic::tribool with a detectGod(), mad poetry.
The C++ Boost Libraries Part 3 – string algorithms | Life of Andrew


troubles compiling boost?

checkout your bin.v2\config.log file for more details...


compiling icu4c for use with boost

ICU - International Components for Unicode
pypt/icu4c · GitHub - (Unofficial) mirror of ICU for C/C++ (ICU4C), updated hourly from SVN.
I had some trouble when trying to get regex icu going. As it talks about in Building and Installing the Library - 1.53.0, you'll want to define U_STATIC_IMPLEMENTATION=1 in env and supplying bjam/b2 with define=U_STATIC_IMPLEMENTATION=1 -sICU_PATH=%ICU_PATH%. When building a vs2010 build from within a "Visual Studio x64 Win64 Command Prompt (2010)" cmd.exe, I would have thought that would produce x64 by default when using devenv /Build. It doesn't produce x64, it produces x86 by default when using "devenv icu4c\source\allinone\allinone.sln /Build Debug". To produce a proper x64 build, add a |64 like: "devenv icu4c\source\allinone\allinone.sln /Build Release|x64". You can see if it works by running "icu4c\source\allinone\icucheck.bat x64 Release".

Also, I had some trouble linking my first app with icu and received an error that looked something like this (shortened a bit):
 libboost_regex-vc100-mt-gd-1_53.lib(icu.obj) : error LNK2019: unresolved external symbol "icu_51::Collator * __cdecl icu_51::Collator::createInstance"
This let me know I wasn't linking something, but which library had Collator::createInstance defined? To find this out, I went into the icu4c\bin64 folder and ran the following to find the function signature.
dumpbin /exports * | grep -e createInstance@Collator -e "Dump of file*"
which shows icuin51.dll defines our missing function. Turns out, the julp/FindICU.cmake cmake rule only adds the uc component by default. To get icuin51.lib in your ICU_LIBARIES variable, you need to pass in the i18n component in the find_package call.
find_package(ICU 4.4 COMPONENTS uc i18n REQUIRED)

Then since it ended up giving me shared dlls instead of static libs as I asked, you need to copy the dlls to the same folder as your binary, or put them in a system path. I chose to implement a post_build custom_command to do the copies, a copy_if_different for both debug and release dlls in the cwd of the binary.
add_custom_command(TARGET YourTargetName POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_if_different
    ${PROJECT_SOURCE_DIR}/lib/icu4c/bin64/icuuc51d.dll   
    $)
Strings - ICU User Guide
Looking for simple practical C++ examples of how to use ICU - Stack Overflow
make to ICU static library on windows.
Releasing Daemons: Getting Boost.Regex + Unicode to work with Microsoft VC++ 2010


Boost.Spirit

Boost.Spirit - parsing and output generation implemented as Domain Specific Embedded Languages (DSEL) using Expression templates and Template Meta-Programming.
djowel/spirit_x3 · GitHub - Spirit X3 Experimental

Boost.Locale

Boost.Locale: Building The library

Boost.RegEx

Boost.Regex: Working With Unicode and ICU String Types
Boost - Users - [regex] Boost.Regex + ICU vs. standalone ICU

boost::xpressive

Regular Expression Named Captures in C++ with boost::xpressive | Codemonkey

Boost.Python

Boost.Python. Executing C++ inside a python environment « Particle Physics and Code
Embedding Python with Boost.Python Part 1
Building Hybrid Systems with Boost.Python
Boost.Python rocks ! - nico saw about 25% speed improvement over SWIG. nico authors nlehuen/pytst · GitHub


Boost.Log

Hasn't yet reached shipping status -- as of 1.53...
Chapter 1. Boost.Log 2.0


Boost.ProgramOptions

c++ - In Boost::Program_Options, how to set default value for wstring? - Stack Overflow


Boost.NoWide

Boost.Nowide: Boost.Nowide
boost-nowide/boost at master · CovenantEyes/boost-nowide · GitHub - A clone of http://cppcms.com/files/nowide/


Boost.Filesystem

HOWTO: Directory recursion in Boost (and other tips) | warpedvisions.org - using recursive_directory_iterator, aliasing namespace fs = boost::filesystem;fs::exists(),fs::is_directory(), fs::current_path()=cwd, fs::create_directories( "xx/yy/zz" ) is equivalent to mkdir -p, fs::change_extension("a.txt", ".tex"),fs::extension(), fs::remove_all()
The C++ Boost Libraries Part 5 – boost::filesystem | Life of Andrew


Boost::mpi

What’s so cool about Boost.MPI? | Dave Abrahams: Home Page

Boost.Statechart

The Boost Statechart Library - Overview - 1.53.0
The Boost Statechart Library - FAQ - 1.53.0


Boost’s Multi Index Containers

Boost.MultiIndex Documentation - Index - 1.53.0
Use Boost’s Multi Index Container! | Schneide Blog


boost::date_time

The Boost C++ Libraries Part 4 – boost::date_time | Life of Andrew


Arbitrary binding pt1 – What is boost::bind and why is it cool? | Crazy Eddie's Crazy C++


Keyboard History Utility has stopped working || doskey b2 and boost build issues

Using vs2012 x86 native cmdline prompt, I could not get the boost build to compile. It would continually show a crash dialog...hazah, more fun.
#6653 (b2.exe crashes a loaded doskey.exe) – Boost C++ Libraries - closed, not sure it should be....agree, the issue is that doskey is crashing.
#9488 (bjam.exe and doskey not getting along) – Boost C++ Libraries - Check your HKEY_CURRENT_USER\Software\Microsoft\Command Processor . I found cygwin places a .bashrc.bat in the user's profile. Deleting this key allowed the build to complete.
Then, since I have clink installed, it continually displays the clink startup text between each compile-c-c++ line. It would be nice to be able to silence the clink startup text...


git and boost || Modular Boost

boostorg/boost: Super-project for modularized Boost
Created: 2013-06-02 19:00:11 Modified: 2016-02-14 12:11:09
/root sections/
>peach custard pie
>linux
>windows
>programming
>random tech
>science
>research


moon and stars



My brain

Visible Dave Project


0, 1, 1, 2, 3, 5, 8, 13, 21, 34,...
xn = xn-1 + xn-2