//
// The objective of this header is to provide pragma guard in order to
// use "-Wall" options at maximum detectability for both clang and gcc
// while not being polluted by VTK header warnings.
// 
// In order to achieve this objective, we have to
// - be able to have clang ignore -Winconsistent-missing-override on some VTK headers
// - while not generating an gcc because it does not know -Winconsistent-missing-override 
//
// Although a bit complicated this will enable gcc and clang compilation with all warning checks.
//
// see also https://stackoverflow.com/questions/42979987/use-pragma-to-disable-a-warning-if-implemented
// and https://github.com/potswa/suppress_warning
//
// This header has to be used with CamiTKReEnableWarnings like so in a source code 
// that has VTK header generating tons of missing override warning:
// 
// #include "CamiTKDisableWarnings"
// #include <VTK File That Has Tons Of Missing override Warnings.h>
// ...
// #include "CamiTKReEnableWarnings"
//
#if defined(__has_warning)
#  pragma GCC diagnostic push
#  if __has_warning("-Winconsistent-missing-override")
#      pragma GCC diagnostic ignored "-Winconsistent-missing-override"
#  endif
#endif
