Subject: Re: [boost] [uuid] Interface
From: Vladimir Batov (batov_at_[hidden])
Date: 2008-12-21 08:57:27
>> I searched high and low and I was not able to find any hints about
>> equivalency of the default-constructed objects (required, expected,
>> assumed or otherwise). And I am still under impression that that
>> requirement (or expectation) cannot be real as many classes are not
>> even meant to be comparable.
> I believe the general consensus about that is changing, at least
Dave, would you please elaborate? In what "direction" that is changing? Are there plans to single the def. cnstr out and to impose some restrictions/requirements/assumptions onto it?
>> I do not think it makes them unusable
>> with the std containers or breaking anything or second-class classes
>> of no interest to the Standards committee.
> You might Google for 'stepanov "regular types"'
Thank you for the pointers. I was able to download "Fundamentals of Generic Programming" and there they clearly consider the def. cnstr one of the fundamental operations for built-in types that they are extending on to "regular types". I have to say that my initial reaction is of a surprise. I would expect it the other way around -- I'd try making built-in types behave more like "normal" classes or if we cannot do that for backward compatibility reasons, then acknowledge the difference and get on with it. Dragging "normal" classes down and squezing them in to the the procrustean bed of the built-in types (dragged into the present through C compatibility) seems like a step down. I am not sure of the practical importance of that Stepanov's view as in many years of writing code I always followed the view of only introducing necessary constructors and I do not remember being hampered by the fact that those classes were not "regular types". What in your view is the importance of that "regular type"-conformance (or non-conformance)?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk