The forward declare should be a struct instead of a class (to be consistent with the definition, as well as to silence an MSVC C4099 warning).