Compatibility with other Tools e.g. swig for own wrappings.
Theoretically the declaration specifier is an unordered list, i.e.
const static vtkIdType BELOW_RANGE_COLOR_INDEX;
or
static const vtkIdType BELOW_RANGE_COLOR_INDEX;
is the same.
I think it is good practice to put 'static' before the actual type, when it is used. Additionaly some tools e.g. swig expect the static modifier as first in line if present. Right now a developer who wants to include vtk with other projects has to search for this pattern and change the vtk code. Usage example: use another C++ library in conjunction with VTK in another language, e.g.: OpenCASCADE has a VTK interface to generate polydata from CAD data. If yout want to use both at the same time with java you need a wrapping for Opencascade and VTK classes. However the current ordering of declaration specifiers makes it necessary to change the VTK code in order to generate those wrappings.
So this would mean e.g. vtkLookupTable.h lines 71 till 74 reads now:
const static vtkIdType BELOW_RANGE_COLOR_INDEX;
const static vtkIdType ABOVE_RANGE_COLOR_INDEX;
const static vtkIdType NAN_COLOR_INDEX;
const static vtkIdType NUMBER_OF_SPECIAL_COLORS;
would become:
static const vtkIdType BELOW_RANGE_COLOR_INDEX;
static const vtkIdType ABOVE_RANGE_COLOR_INDEX;
static const vtkIdType NAN_COLOR_INDEX;
static const vtkIdType NUMBER_OF_SPECIAL_COLORS;