@pcwalton Regarding https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling … - you're right that name mangling must encompass expression. It's interesting to think about how exactly the language failed to separate types from expressions.
Not sure what you mean…the two things that make expressions creep in to mangling are decltype and const type parameters. I’m not sure really how they could have avoided it…we’re gonna have the same thing in Rust probably, once we stabilize const generics…