Single file header and impl libs have become popular, from a users point of view they tend to look like this.

From the point of view of the library maintainer the code is structured something like this (more or less).

So now in one of your source files you define SOME_LIB_INCLUDE_IMPL before including the library header.

Compile and run,

outputs …

This can make distributing small libs nice. Its a single file, and can have its source compiled into a source file. Which is preferable than inline functions or (shudder) C++ templates.

Some cool examples …