В ответе Грега Хегвелла содержится несколько полезных советов, но он не объясняет, почему компилятор генерирует предупреждение.
Когда список инициализатора конструктора обрабатывается компилятором, элементы инициализируются в том порядке, в котором они объявлены в объявлении класса , а не в том порядке, в котором они появляются в списке инициализатора.
Некоторые компиляторы генерируют предупреждение, если порядок в списке инициализатора отличается от порядка объявления (поэтому вы не удивитесь, если элементы не будут инициализированы в порядке списка). Вы не включаете объявление своего класса, но это вероятная причина предупреждения, которое вы видите.
Смысл этого поведения заключается в том, что члены класса должны всегда инициализироваться в одном и том же порядке: даже если в классе имеется более одного конструктора (в котором члены могут иметь разные порядки в своих списках инициализаторов).