C++ Team Blog

The latest in C++, Visual Studio, VS Code, and vcpkg from the MSFT C++ team

Container Pretty Printer – Advanced STL, Part 6

In Part 6 of my second video lecture series focused on the Standard Template Library, I demonstrate how to write a "pretty printer" for STL containers that's capable of formatting a vector<tuple<int, string, int>> as [(1, "ten", 100), (2, "twenty", 200), (3, "thirty", 300)].  It's easy to use, with the default syntax being ...
Comments are closed.0 0
C++

_ITERATOR_DEBUG_LEVEL – Advanced STL, Part 3

In Part 3 of my video lecture series exploring the Standard Template Library's implementation, I explain how our powerful correctness checks in debug mode work.  In VC10, they're controlled by the macro _ITERATOR_DEBUG_LEVEL, which supersedes VC8 and VC9's more confusing _SECURE_SCL and _HAS_ITERATOR_DEBUGGING macros.  Additionally, ...
Comments are closed.0 0
C++

Algorithm Optimizations – Advanced STL, Part 2

Part 2 of my video lecture series exploring the Standard Template Library's implementation is now available.  In this part, I walk through how our STL algorithms equal() and copy() use template metaprogramming to detect when it's safe to call memcmp() and memmove(), which are potentially faster than the generic loops. In Part 1's ...
Comments are closed.0 0
C++

shared_ptr – Advanced STL, Part 1

Part 1 of my video lecture series exploring the Standard Template Library's implementation is now available.  In this part, I explain how some of shared_ptr's magic works, including type erasure and make_shared<T>()'s optimizations that save both space and time. This advanced series assumes that you're familiar with C++ and the...
Comments are closed.0 0
C++

Regular Expressions – Video Introduction to the STL, Part 8

C++0x's <regex> header combines Perl's regular expressions with C++'s templates and iterators.  The result, like the rest of the STL, is insanely powerful but potentially overwhelming at first sight.  It's actually easy to use, and much easier than writing string processing code by hand.  I demonstrate how to start using &...
Comments are closed.0 0
C++

Video Introduction to the STL, Parts 6 and 7

Part 6 and Part 7 of my video lecture series introducing the Standard Template Library are now available; they cover algorithms and functors. Previous parts:  Part 1 (sequence containers)Part 2 (associative containers)Part 3 (smart pointers)Part 4 (Nurikabe solver introduction)Part 5 (Nurikabe solver conclusion) My Nurikabe ...
Comments are closed.0 0
C++

Video Introduction to the STL, Part 5

In the fifth part of my video lecture series introducing the Standard Template Library, I explain how the advanced analysis in my Nurikabe solver works.  One of its steps involves using a breadth-first search to detect any unreachable cells. Mandatory prerequisites of Part 5 are reading Wikipedia's Nurikabe page and watching Part 4 (...
Comments are closed.0 0
C++