Boost logo

Boost :

From: Kevlin Henney (Kevlin.Henney_at_[hidden])
Date: 2000-01-12 16:42:46


Dave Abrahams writes:
>> Kevlin Henney writes:
>> >
>> > "r.m is defined if t.m is well defined, where t is an instance of the
the
>> > value type and r is an instance of the reference type"
>>
>> Yes, that's an accurate wording.
>
>Actually, it doesn't work for member functions, since you can't legally
just
>name one like that. How about "&r.m is defined if &t.m is defined..."

A misunderstanding perhaps? This works fine, regardless of whether or not m
represents a data member, eg m <=> foo, or a member function, eg m <=>
bar().

This is the same basic syntax that the standard uses for iterators, and
unless someone wants to file a DR I reckon it's good enough!

>I still wonder if this requirement is really neccessary, though. It isn't
>clear to me that all proxies must reflect all functionality of the object
>they are proxying in order to be valid or useful.

Hmm, what would be an alternative requirement? If there is no requirement,
a reference type can be totally unrelated to the value type -- pretty much
anything except void! So it seems a requirement is required to make the
spec valid and useful.

The current wording is probably a reasonable starting point. Working
through specific examples of counter cases could help establish some new
wording. Anyone any specific example in mind?

Kevlin


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk