It's generally known that for inlined-function whenever they are called the compiler "replaces" the actual call to the function by its body.
But what about inline variables proposed in C++17? What are their semantics?
Normally functions and variables have to be defined (space allocated for them, either space for a variable or the code for a function body) exactly once. Inline functions relax that to allow multiple definitions (as the definitions are pulled into multiple modules through include files), all of which must be identical. If the function's actually referenced, rather than copied in-line, the multiple definitions will be merged by discarding all but one copy and making that copy the official one in the binary.
Inline variables do the equivalent thing for eg. static class members. Rather than having to create a class body source file whose only contents would be the definition of the single member variable, you would be able to define the static member variable in the class header file and the resulting multiple definitions (one in each module that included the class header) would be merged into a single instance in the binary without causing compiler or linker errors.