In such case it is best to see original documentation.
Blogs are often written by people who are in learning stage so in most cases they are not trustworthy (I don't say this is the case, but you should have limited trust to blogs written by someone you do not known).
The whole trick here is template method void serialize(Archive & ar, const unsigned int version)
.
Since it is a template once it is used to serialize and once to deserialize data.
Since code is doing writing and reading at the same time, stream operators <<
>>
can't be used. Authors of library decided to use bit wise and operator &
to express that it can do a reading and writing.
It looks strange like definition of a reference, but note on left side you have argument of method and or right side you have a field name.