Is it necessary?
No, this is optional.
What is the purpose of this?
This is what the standard says in ยง9.6.2, C ++ 11 (draft N3337, my hit):
, , . - . [: , . - ]. . - .
, , struct 2- , , , struct 2-. , , . , ยง9.6.1:
-. - . . - .
, , struct/class -.