* Comma operator problems when doing math functions that return two parameters
(e.g quotient).
* Passing bool tag type through varargs - the varargs aren't actually used and
there's an overload for true_type, so we can instead accept false_type.
* gcc seems to declare numeric_limits as a struct, so friend'ing it as a class
throws a warning. Since we only care about C++11 we can omit the tag from the
friend declaration.