Looks at why befriending a template in another namespace is easier said (in the standard) than done (using real-world compilers that don't quite get the Standard right).
Ranged types, common in Ada, allow the programmer to constrain a numerical type to a certain range. This article presents a library that brings these types to C++.