C++ has several methods -- including the <type_traits> header and runtime type information -- to help your application make type-based decisions.
Documenting your code is a critical part of development, but too many developers pay too little attention to proper commenting. C++ devs have a tool that can help.
Unit testing is a fine-grained technique for finding bugs. Here's how to apply it to C++ projects.
A survey of the emerging mobile landscape, and how C++ fits in.
A meta-program is "executed" as the result of template instantiation (therefore, before compiled code is produced). Meta-program results are then compiled and merged into object code, including any back-end optimization.
Diego Dagum provides an overview of C++ templates, and how its generics differ from C# and Java.
.NET and Java developers are perplexed about the indiscreet way C++ discloses private class details. Pimpl (pointer-to-implementation) solves this problem by keeping secrets hidden from peepers.
In both .NET and Java, the garbage collector is smart enough to detect and release circular references. Dealing with circular references in C++ isn't as simple.
RAII, or "Resource Acquisition Is Initialization", has become a standard C++ coding practice. Here's why.
From a purely object-oriented perspective, "copy semantics" is the right way to preserve control over object ownership. But in those scenarios where ownership becomes irrelevant, C++11 "move semantics" is an efficient complement.
C++ does things differently than C# or Visual Basic, especially when it comes to class construction. Take this tour to learn about the differences.
Even for C++'s ancestor, C, one of its most valued features was the ability to declare functions as parameters for other functions or procedures
C++ pointers earned a bad reputation for causing memory leaks, but new smart pointers release memory as it stops being referenced.