>    CustomData does not need a default constructor, because all its
>    members will be properly initialised by the implicitly generated
>    default constructor. You can add a default constructor here
>    (technically it is correct), though I would not have rejected the pull
>    request because of it being missing.

This is incorrect. As an example, see here http://ideone.com/BEUzqs
To guarantee the float member is initialized properly, you *need* to
provide a default ctor and initialize it to 0.0f.