In version 1.6.1 (and the same issue appears to be in SVN trunk), there
are some warnings when using <mpi.h> from code compiled in C++11 mode with
more recent snapshots of GCC 4.9:
.../include/mpi_portable_platform.h:102:38: warning: invalid suffix on literal;
C++11 requires a space between literal and string macro [-Wliteral-suffix]
_STRINGIFY(__INTEL_COMPILER)"."_STRINGIFY(_PLATFORM_INTEL_COMPILER_BUILD_DATE)
^
.../include/mpi_portable_platform.h:135:33: warning: invalid suffix on literal;
C++11 requires a space between literal and string macro [-Wliteral-suffix]
_STRINGIFY(__PGIC__)"."_STRINGIFY(__PGIC_MINOR__)"-"_STRINGIFY(__PGIC_PATCHLEVEL__)
^
.../include/mpi_portable_platform.h:135:62: warning: invalid suffix on literal;
C++11 requires a space between literal and string macro [-Wliteral-suffix]
_STRINGIFY(__PGIC__)"."_STRINGIFY(__PGIC_MINOR__)"-"_STRINGIFY(__PGIC_PATCHLEVEL__)
^
.../include/mpi_portable_platform.h:374:34: warning: invalid suffix on literal;
C++11 requires a space between literal and string macro [-Wliteral-suffix]
_STRINGIFY(__GNUC__)"."_STRINGIFY(__GNUC_MINOR__)"."_STRINGIFY(__GNUC_PATCHLEVEL__)
^
.../include/mpi_portable_platform.h:374:63: warning: invalid suffix on literal;
C++11 requires a space between literal and string macro [-Wliteral-suffix]
_STRINGIFY(__GNUC__)"."_STRINGIFY(__GNUC_MINOR__)"."_STRINGIFY(__GNUC_PATCHLEVEL__)
^
.../include/mpi_portable_platform.h:377:34: warning: invalid suffix on literal;
C++11 requires a space between literal and string macro [-Wliteral-suffix]
_STRINGIFY(__GNUC__)"."_STRINGIFY(__GNUC_MINOR__)".?"
The fix is to insert spaces between the strings like the warnings say;
doing that is compatible with both older and new language standards.
-- Jeremiah Willcock