I can't reproduce it on my local machine (gcc 4.7.3 on Ubuntu 13.10), but it's possible that my gcc is not the same as the one the tester uses.
My guess is that this may be a compiler problem. Your code includes range/iterator_range_core.hpp indirectly via lexical_cast.hpp, which is included in multiprecision/detail/number_base.hpp. (Hint: You can add -H switch to gcc command line in the error log to track down the include chain.)
I think that the problem could be that FP_NAN and/or FP_INFINITE are declares as anonymous enum constants. The compiler tries to find operator== through ADL and finds templated boost::operator== from Boost.Range and tries to instantiate it with the anonymous enum type and breaks. Again, this is just my guess. You could try to work it around by explicitly casting the constants to int.
Will do, if that's the cause it's a pretty evil failure to track down, and many thanks for the hint! John.