It's a template specialization, so it should reside in two headers.
But as I include the header in two or more .cpp files, I get a linking error. Maybe someone can shed some light?
Definition is as follows:

I know that it would generate an error if it was a non-template function, but apparently specializations are considered to be real functions if instantiated, thus subject to the same rules as all normal functions.
Because it doesn't apply to template functions (non-specialized, of course).
Anyway, inlining them compiles it fine.
So... you can actually put specializations in a source file. I guess it makes sense...