Surprisingly, some compilers (notably GCC 4.6.3) will issue a warning when comparing a literal which is clearly positive to an unsigned type, when looking for a suitable instantiation in Boost. This is fixed by making the literal unsigned too, so there's no doubt.