Does this look like something a more recent compiler would fix?
Possibly. We did do a lot work last year on getting most of Boost to work (there’s still some issues with the thread libraries, but I don’t think this is the problem here) and work with the Boost folks to so they didn’t use an old configuration (up until 1.69, they had some configuration what was based on our old pgCC compiler versus pgc++)
Another possibility is that your PGI install is configured to use and older GNU version. What GNU version do you have installed?
In order to object compatible with g++, we have to use their STL so are dependent upon the language level support by the GNU version pgc++ is configured to use. For example, g++ did not fully support C++11 until 4.9.3, C++14 til the mid 5.x release, and I believe C++17 until 7.x (though I may be slightly off of this). It’s possible that this is causing the issue and you’ll need to reconfigure pgc++ to use a newer GNU STL.
The PGI configuration information is stored in a file called “localrc” found in your PGI installation’s “bin” directory. To update the PGI configuration to use a different GNU installation, run the following command:
makelocalrc -x -d . -gcc /path/to/gnu/bin/gcc -g++ /path/to/gnu/bin/g++ -g77 /path/to/gnu/bin/gfortran
This will create a new “localrc” file in your local directory. From here, you can set the PGI environment variable “PGI_LOCALRC” to the fully qualified path to this localrc file.