I have just committed an update to MPIR's C++ header (mpirxx.h) to bring it into line with the update that Marc Glisse did for GMP some time ago (thanks Marc).
While doing this I found an issue with the predefined symbol we use to detect the Intel compiler - we use INTEL_COMPILER but on Windows, at least, the two possible defines are __INTEL_COMPILER and __ICL. As far as I can tell the equivalent defines on Unix/Linux are __INTEL_COMPILER and __ICC. So I don't believe that INTEL_COMPILER is correct on either platform.
I have changed the INTEL_COMPILER define in all Windows specific files to __INTEL_COMPILER and ensured that the __ICL define is used where appropriate.
But I have NOT updated any Unix/Linux specific files since the defines need to be checked out by an Intel compiler user on Unix/Linux. It may also be necessary to choose the __INTEL_COMIPLER define for code that is OS neutral or __ICC for code that is to run only on Unix/Linux.
On another issue, since the Visual Studio, the Intel and the GCC compilers all support a useful common subset of C++11 features, I have conditionally enabled these (depending on compiler version numbers).
The addition of r-value references and move semantics in particular should improve C++ performance by eliminating the unnecessary copying of large objects.
Brian