Tom Lachecki

(Tomalak Geret'kal)

Iterator Invalidation Rules (C++0x)

A version of my previous post (a tidy, all-in-one table of all the C++03 container iterator invalidation rules) updated for C++0x.

Iterator Invalidation Rules (C++03)

I've not found a tidy, all-in-one table of all the C++03 container iterator invalidation rules. So, with references, here they are!

Tomalak's Tuesday Tip #11: Sleep Your Way To Success

Tempted to count the passage of CPU time with the clock() POSIX call? Be careful.

Tomalak's Tuesday Tip #10: How to Iterate-Erase Over Maps

Keeping it low-key this week, let's re-iterate (lol) the conventional map-erase idiom in C++.

Tomalak's Tuesday Tip #9: Befriending Your Parser

In an unprecedented feat of miraculousness, Freenode's ##C++ discussion channel saw — in the space of no more than twenty minutes — the same question asked twice of one of C++'s more subtle features. Just how do you declare a friend from the global namespace? I find out.

Clang Breaks Template Rules, Confuses Me

I briefly explore an odd case of misbehaviour from clang.

Tomalak's Tuesday Tip #8: Outsmarting Static Initialization

Right or wrong, it's still trendy in some C++ circles to use the singleton pattern for defining a type that can only be instantiated at most once in an execution run. However, this can cause problems when you bring more static data into the mix.

It Is Not Called The "STL", Mmkay?

I ask everyone to stop using the erroneous term "STL".

Tomalak's Tuesday Tip #6: An Inclusion Pitfall

One of the evilnesses of the C++ Standard Library is that implementations — be they GCC's libstdc++ or the Dimkumware implementation used by MSVC — are free to have their headers include other standard headers as much as they like. This can lead to confusion.

Overcoming Name Shadowing In C++

I briefly explore a common inheritance gotcha and its usual solution.

« Previous PageNext Page »