If BSON_EXTRA_ALIGN is 0 the BSON_ALIGNED_BEGIN macro defined here is invalid.
MSVC does not allow mathematical expressions in align:
__declspec( align( # ) ) declarator
# is the alignment value. Valid entries are integer powers of two from 1 to 8192 (bytes), such as 2, 4, 8, 16, 32, or 64.
The cmake file always sets BSON_EXTRA_ALIGN to 1 so this was never noticed.