My book on modern C++ programming

I am happy to announce that my book on modern C++ programming called Modern C++ Programming Cookbook, published by Packtpub, can now to pre-ordered. The book will be published around mid 2017, but pre-ordering gives you early access to the content as it is written. As the title shows, the book is a cookbook with … Read more

A better date and time C++ library

C++11 added a date and time utility library called chrono, available in namespace std::chrono and header <chrono>. The problem with it is that the library is a general purpose one and therefore lacks many useful features, such as working with dates, weeks, calendars, timezones and other related features. Fortunately, a rich date and time library … Read more

A comparison of two std::transform alternatives revisited

In the previous post I have compared two alternative ways of transforming a string to upper case, both using std::transform: one that modifies an existing string and one that generates a new one by inserting at the end using std::back_inserter. For the second alternative I have presented two implementations, one that does an initial reservation … Read more

A comparison of two std::transform alternatives

UPDATE: For an update on the implementation and the conclusions see A comparison of two std::transform alternatives revisited. I was writing a small utility function to transform a string to uppercase. The obvious solution for that is std::transform, but as I was writing it I realized there are several alternatives: transform an existing string, by … Read more

Building the 64-bit version of Chromium Embedded Framework on Windows

The Chromium Embedded Framework (CEF for short) is an open source framework for embedding Chromium-based browsers in other applications. The base implementation is targeting C/C++ applications but ports for other languages exist (these include Java, C#, Delphi, Python). The nightly builds (for various systems and platforms) of CEF are available for download at https://cefbuilds.com/. These … Read more

Version history of VC++, MFC and ATL

I have tried to assemble together information about the Visual C++ releases, the compiler and the frameworks (MFC and ATL). You can find these on many places, but it is often incomplete or focused on something particular (Visual Studio, C++ compiler, framework, etc.). The table below is the result of this effort. It is incomplete … Read more

Microsoft made C++ a second-class citizen in Visual Studio 2015

Visual Studio 2015 is out and comes with lots of new features and improvements (see details here) but it also surprised me with what I call a demoting of C++ again to a second-class citizen, after some years when it looked like it regained importance at Microsoft. I’m saying Microsoft has demoted C++ because they … Read more

MFC Collection Utilities library

This project has been moved to GitHub. New location: https://github.com/mariusbancila/mfccollectionutilities C++11 has provided support for range-based for loops. They allow iterating over the elements of a range without using an index. std::vector<int> v = {1, 2, 3, 4, 5}; for(auto& e : v) e *= 2; However, if you try the following MFC code you … Read more