PlayerOption po2;
po2.FromString( po1.GetString() );
po2 does not necessarily equal po1 because the note skin might be omitted so po2's note skin will be blank. Passing true to GetString() will include the note skin so po2.FromString( po1.GetString(true) ) will cause po2 to equal po1.