C++ Status at the end of 2014

This was a good year for C++! Short summary (language features): Clang supports C++14 GCC supports C++11 and most of C++14 (Full support in upcoming GCC 5.0) Intel 15.0 supports C++11 (some features on Linux/OSX only) Visual Studio tries to catch up with C++11, but it also introduces C++14 features as well… and it become (almost) free!

READ MORE...

Top 5 Beautiful C++ std Algorithms Examples

Some time ago I’ve seen an inspiring talk from CppCon 2013: “C++ Seasoning” by Sean Parent. One of the main points of this presentation was not to use raw loops. Instead, prefer to use existing algorithms or write functions that ‘wraps’ such loops. I was curious about this idea and searched for nice code examples.

READ MORE...

Vector of object vs Vector of pointers

After watching some of the talks from Build 2014 - especially “Modern C++: What You Need to Know” and some talks from Eric Brumer I started thinking about writing my own test case. Basically I’ve created simple code that compares vector<Obj> vs vector<shared_ptr<Obj>> The first results are quite interesting so I thought it is worth to describe this on the blog.

READ MORE...

C++ status at the end of 2013

C++11 conformance GCC 4.81 - 100% Clang 3.3 - 100% Intel 14.0 - 84% Visual C++ 2013 - 66% Another year is almost over so it is a good time to check what is going on with C++. This time more stats and real data compared to my post from the previous year.

READ MORE...

#Include little toolkit

Include Guards, Pragma Once, Predeclarations and other hints that might be useful when dealing with includes. What can we do with file including in C++? Do we need to put all the other header files of the project (plus third party libraries) in every file all the time? For sure there have to be some rules to manage that issue properly.

READ MORE...

__FUNCTION__ macro in Visual C++

Recently, I’ve found something interesting in Visual Studio that improved my Logger! I had a function called AddMsg /** appends message to the log file */ void AddMsg(LOG_MODE m, int level, char* strModule, char *strMsg, ...); But, when you wanted to add a comment you needed to use quite complicated and long syntnax, like:

READ MORE...