This is required at least for Boost.WinAPI to match the declarations in
Windows SDK headers, which use dllimport.
Also, for clang on Windows, use dllimport/dllexport even beyond Cygwin.
The compiler does support these attributes, and it should for
compatibility with Windows headers.
I know, Boost doesn't support MSVC 5.0 and 6.0. But the expression is invalid. Another way to fix it:
```c++
# if _MSC_VER < 1300
// Note: Versions up to 7.0 aren't supported.
# define BOOST_COMPILER_VERSION 6.0
# elif _MSC_VER < 1310
# define BOOST_COMPILER_VERSION 7.0
```
When the PGI C++ compiler changed to be GNU compatible, pgi.hpp stopped being used, because the check for __GNUC__ in select_compiler_config.hpp was true before the preprocessor ever got to the check for __PGI. Rearrange the order of the checks in select_compiler_config.hpp, moving the check for __PGI above the check for __GNUC__.
pgi.hpp was designed for a very old version of PGI C++, before it was GNU compatible. The settings in that file won't work for PGI compilers of the last few years. Replace the entire file with one that just includes gcc.hpp and then adjusts a few macros for areas where PGI is not quite GNU compatible. (The old PGI compilers are not actively being used by any customers that we (PGI) know of, so keeping the old contents of pgi.hpp would be of little or no benefit.)
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
# Fixed Conflicts:
# checks/Jamfile.v2
# checks/test_case.cpp
# test/all/Jamfile.v2
# test/config_test.cpp
Also added some more documentation to tie together the various SFINAE macros. Regenerated the docs.