http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51795
--- Comment #25 from Marc Glisse <marc.glisse at normalesup dot org> 2012-01-27 22:32:17 UTC --- On the other hand, you can test the boost implementation without looking at the code and notice the assertion failure if you ask for uint32_t (with uint64_t, there is enough space to do the multiplication). So they are cleaner but don't handle everything either.