Fairly straightforward variable shadowing.
Orders the initializer list the way that the members would actually be initialized in. Resolves some -Wreorder warnings