https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118631
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The copy constructor is needed because of:
```
StringSet operator + ( const StringSet& stringSetA, const StringSet& stringSetB
) {
StringSet resultStringSet{ stringSetA };
resultStringSet.include( stringSetB );
return resultStringSet;
}
```
That copies stringSetA but it uses the default one which will copy the
reference pointing to the stringSetA.msets_ and still point to that.
