Tested compilers are:
On Windows: gcc versions 4.8 through 10.2. VC++ versions 8.0 through 14.2. clang targeting gcc versions 3.7 through 10.0 clang targeting VC++ versions 3.9 through 10.0
In Linux: gcc versions 4.4 through 10.2 clang versions 3.3 through 10.0 Intel C++ 12.1 throguh 19.1
Not all versions compile all tests successfully.
For VC++ 8.0 the BOOST_VMD_IS_EMPTY and BOOST_VMD_ASSERT_IS_EMPTY macros take a single parameter rather than variadic data because this version of VC++ does not accept variadic data which may be empty.
The compilers supported are those which are compiled in C99/C++11 mode on up or those compilers which, when compiled in C++98/C++03 mode, support both variadic macros and passing empty preprocessor data.