Boost logo

Boost :

Subject: Re: [boost] [property_tree] Copy constructor and assignment operator in xml_writer_settings class
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2010-10-18 10:02:39

On 18/10/10 14:50, Sebastian Redl wrote:
> On 18.10.2010, at 14:22, mloskot wrote:
>> Sebastian Redl wrote:
>>> On 18.10.2010 12:22, mloskot wrote:
>>>> mloskot wrote:
>>>>> Hi,
>>>>> What is recommended or required policy regarding copy
>>>>> operations for types which consist of const data members,
>>>>> within Boost?
>>>>> I'm having problem with understanding why the
>>>>> xml_writer_settings class do not have the copying operations
>>>>> disabled.
>>> Why would it? There's nothing semantically wrong with copying a
>>> settings object. It's just not very useful.
>> Looking at the current definition [1], I'm not convinced.
>> According to C++(n3092)/12.8/25, assignment operator for this class
>> is defined as deleted due to "non-static data members of const
>> non-class type".
> I have no idea what your point is.

My point is that the class definition suggests its copying might
not be kosher. It is valid to copy-construct it but not assign.

> Do you want me to prevent copy construction too, just because copy
> assignment is not possible? Or do you want me to make the members
> non-const so that copy assignment is possible?

In my opinion, copy constructor and assignment operator
walk together to make a type fully copyable. Thus, IMO, either the
definition should change or both copy operations disabled.

> If the former, why? If the latter, I suppose I could do that. I'm
> not the one who made the members const in the first place.

I would suggest to either disable both copy operations (does it make
sense to have copy ctor without assignment operator?) or change the

I'd also like to point that I have asked generally:
What is recommended or required policy regarding copy
operations, it is copy ctor and assignment operator.
So, I have asked for comments and discussions too, as my
understanding of this matter may be incorrect.

Best regards,

Mateusz Loskot,
Charter Member of OSGeo,
Member of ACCU,

Boost list run by bdawes at, gregod at, cpdaniel at, john at