Answer
An inline namespace's members are treated as if they were in the enclosing namespace (accessible without the inner qualifier), while still being distinct for linkage/ABI. It's primarily used for library versioning: a library can put its current API in an inline namespace (e.g., v2) so users write ns::name but the symbols are versioned for ABI compatibility.
namespace lib {
inline namespace v2 { void f(); }
}
lib::f(); // resolves to lib::v2::fReal-world example A library exposes lib::f while internally versioning symbols via inline namespaces for ABI stability.