What causes this kind of warning to occur? why is the compiler forcing some order of initialization in an initializer list? I frequently run into this when I am initializing a pointer and an int in a constructor's initializer list.