The cast itself in that line does not break the strict aliasing rule. The rule is only broken if the implementation of bind()
dereferences that pointer without converting it back to the right type.
Any strict aliasing problems there are problems for the implementer of bind()
, not the user.