Search code examples
g++suppress-warnings

gcc warning" 'will be initialized after'


I am getting a lot of these warnings from 3rd party code that I cannot modify. Is there a way to disable this warning or at least disable it for certain areas (like #pragma push/pop in VC++)?

Example:

list.h:1122: warning: `list<LogOutput*, allocator<LogOutput*> >::node_alloc_' will be initialized after 
list.h:1117: warning:   `allocator<LogOutput*> list<LogOutput*, allocator<LogOutput*> >::alloc_'

Solution

  • Make sure the members appear in the initializer list in the same order as they appear in the class

    Class C {
       int a;
       int b;
       C():b(1),a(2){} //warning, should be C():a(2),b(1)
    }
    

    or you can turn -Wno-reorder