• Now I need to read the preface and then look for any important concepts there.
  • Basically the book is about Boost.
  • The author have been using Boost since a decade ago.
  • The 1st chapter is about building, getting started, and using Boost. I think the first chapter is more about to setup development environment to get started to develop with Boost.
  • The 2nd chapter is about basic operation with Boost, I think. It says it deal with data types and handling command line arguments. The latter one seems similar to what I have done with Docopt.
  • The 3rd chapter teaches on how to make "safety net" for the C++ codes. There is also this "smart pointer" stuffs (I am not sure what is that exactly).
  • Chapter 4 is about working with strings!
    • There is Boost Range library for elegantly defining subsequences.
    • The Boost Tokenizer library to split strings into tokens using different strategies.
    • There is Boost RegEx as well for text manipulation with Regular Expression.
  • The chapter 5 is about "Effective Data Structures Beyond STL".
    • What is STL? Based from Google STL stands for Standard Template Library.
    • This chapter focuses on Boost features that is not in C++ standard library.
  • The 6th chapter is about "Bitmap And Multi - Indexing Containers". Looking through bidirectional maps and multi - index containers. These are 2 nifty containers available from Boost.
  • Chapter 7 is about "Higher Order And Compile - Time Programming". There are 2 Boost features used in this chapter: Boost Type Traits and Template Metaprogramming libraries. And then there is "Using Boost To Build Simple Parsers Using Spirit Qi DSEL".
  • Chapter 8 teaches about using Boost's date and time libraries: Boost Date And Time and Boost Chrono libraries to represents dates, time points, intervals, and periods.
  • Chapter 9 deal with directories, files, and general file stream. I think I can port my Python automation program into C++ after I done with this chapter.
  • The 10th chapter deal with concurrency with Boost Thread Library and Boost Coroutine library to handle the concurrency logics. There are various synchronization methods also shown here.
  • Chapter 11 will deal with networked programming.
  • After the the 11th chapter there will be Appendix, for C++ general semantics and Boost emulation of several C++ 11 features in C++ 03.
  • What I need to learn from this book is a computer that is able to be installed with C++ and Boost. The detail of installations will be in the 1st chapter.
  • There is also CMake. I am not sure what CMake is. I heard this a lot but never really use it.
    • Perhaps, the only time I ever installed CMake is when I compiled OpenCV. I think CMake is like a build tool.
  • This book is not repeating what are there in the Boost manual. So, the manual should be read alongside with this book.
  • Starting Chapter 1.
  • Boost started as a way so that C++ can compete with Java in high - performance embedded software development.
  • I think Boost is what JQuery is to JavaScript.
  • In C++ there is debug library and non - debug library (do C++ developers call non - debug library as a runtime library?).
    • In my view non - debug library is like JavaScript's .min.js library.
    • The release library is the one in JavaScript that is without the ".min" in the file name.
  • There are 3 library naming convention.
    • Versioned Layout, too complicated (beside the library name, mention toolset and version number).
    • System Layout, too minimalistic (beside the library name, this layout only mention version number).
    • Tagged Layout, in the middle of Versioned Layout and System Layout.
  • Installing Boost binary in Ubuntu is usually using apt-get from terminal sudo apt-get install libboost-all-dev.
  • Downloading Boost source codes from http://www.boost.org or http:// sourceforge.net/projects/boost.
  • There are these additional packages as well to complement Boost libraries (when the library is present).
    • ZLib library.
      • sudo apt-get install zlib1g.
      • sudo apt-get install zlib1g-dev.
      • sudo apt-get install zlib1c.
    • BZip2 library.
      • sudo apt-get install libbz2 replaced with newer package at sudo apt-get install bzip2.
      • sudo apt-get install libbz2-dev.
    • ICU library.
      • sudo apt-get install libicu-dev.
    • Expat library.
      • sudo apt-get install libexpat1.
      • sudo apt-get install libexpat1-dev.
  • Both "...zip" library is used compression.
  • The ICU library is used for Unicode.
  • The Expat library is used for XML parsing (the project itself is called Expat XML Parser).
    • Here is what stated in the Expat Library website, "Expat excels with files too large to fit RAM, and where performance and flexibility are crucial.".
  • Additionally I can install Clang in Ubuntu with sudo apt-get install clang.
  • C++, Boost can be used in in Unix platform with both GCC (GNU Compiler Collection) and Clang.
  • For Boost Linux install from source codes, CLI for --prefix=... refers to the location where the Boost library will be installed. In most cases, Boost library should be installed in non - super user directories.
  • There is a step - by - step tutorial as well in this book to build Boost in Windows (perhaps, I need this later when developing codes in Windows platform).
  • Screen shot taken for this reading.

./20170807-1503-cet-1-1.png

./20170807-1503-cet-1-2.png

./20170807-1503-cet-1-3.png

./20170807-1503-cet-1-4.png

./20170807-1503-cet-1-5.png

./20170807-1503-cet-1-6.png

./20170807-1503-cet-1-7.png

./20170807-1503-cet-1-8.png

./20170807-1503-cet-1-9.png

./20170807-1503-cet-1-10.png

./20170807-1503-cet-1-11.png

./20170807-1503-cet-1-12.png

./20170807-1503-cet-1-13.png

./20170807-1503-cet-1-14.png

./20170807-1503-cet-1-15.png

./20170807-1503-cet-1-16.png

./20170807-1503-cet-1-17.png

./20170807-1503-cet-1-18.png

./20170807-1503-cet-1-19.png

./20170807-1503-cet-1-20.png

./20170807-1503-cet-1-21.png

./20170807-1503-cet-1-22.png

./20170807-1503-cet-1-23.png

./20170807-1503-cet-1-24.png

./20170807-1503-cet-1-25.png

./20170807-1503-cet-1-26.png

./20170807-1503-cet-1-27.png

./20170807-1503-cet-1-28.png

./20170807-1503-cet-1-29.png

./20170807-1503-cet-1-30.png

./20170807-1503-cet-1-31.png

./20170807-1503-cet-1-32.png

./20170807-1503-cet-1-33.png

./20170807-1503-cet-1-34.png

./20170807-1503-cet-1-35.png

./20170807-1503-cet-1-36.png

./20170807-1503-cet-1-37.png

./20170807-1503-cet-1-38.png

./20170807-1503-cet-1-39.png

./20170807-1503-cet-1-40.png

./20170807-1503-cet-1-41.png

./20170807-1503-cet-1-42.png

./20170807-1503-cet-1-43.png

./20170807-1503-cet-1-44.png

./20170807-1503-cet-1-45.png

./20170807-1503-cet-1-46.png

./20170807-1503-cet-1-47.png

./20170807-1503-cet-1-48.png

./20170807-1503-cet-1-49.png

./20170807-1503-cet-1-50.png

./20170807-1503-cet-1-51.png

./20170807-1503-cet-1-52.png

./20170807-1503-cet-1-53.png

./20170807-1503-cet-1-54.png

./20170807-1503-cet-1-55.png

./20170807-1503-cet-1-56.png

./20170807-1503-cet-1-57.png

./20170807-1503-cet-1-58.png

./20170807-1503-cet-1-59.png

./20170807-1503-cet-1-60.png

./20170807-1503-cet-1-61.png

./20170807-1503-cet-1-62.png

./20170807-1503-cet-1-63.png

./20170807-1503-cet-1-64.png

./20170807-1503-cet-1-65.png

./20170807-1503-cet-1-66.png

./20170807-1503-cet-1-67.png

./20170807-1503-cet-1-68.png

./20170807-1503-cet-1-69.png

./20170807-1503-cet-1-70.png