I couldn't find any information on this topic neither from stackoverflow or elsewhere.
I know that extern can be used with namespace scope variables in header files to disambiguate a definition int foo; from a bare declaration extern int foo;. That is done to avoid breaking the one-definition-rule, in case multiple files #include this same header file.
In C++17, one can use constexpr inline foo; for globals, which should be better than the old way. One could also use extern inline const/constexpr foo;, both compile without errors, but I have no idea if the extern makes any difference semantically.
So when should one use extern inline with variables, if ever? What is the best practice in C++17?