Error: ISO C++17 does not allow 'register' storage class specifier [-Wregister], when building Boost 1.69.0

When trying to build Boost using LLVM, I had this error:
error: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]

I attached the project-config.jam file I used to this message. Someone please help me out (if there’s someone on here who can).

project-config.jam (1.12 KB)

This seems a better question for cfe-dev or cfe-users

Yes, this keyword is no longer valid starting from C++17:

I realize that the “why” probably doesn’t help you move forth with your problem, so here are a couple suggestions how to get over it:

  • Build Boost in C++14 mode with -std=c++14

  • Cut out “register” from the Boost source and rebuild

  • Try a newer Boost version, it may have been fixed


The issue comes in part form the Python headers that have the keyword.
Unfortunately, this also means that there is an issue while building user code. But it’s not a Boost code issue for this library, but a Python one.