This enum and the following constructor is a workaround for VC compiler bug that prevents using attributes on constructors without inline implementation. This should be removed when the deprecated ctor is removed.