Date: Fri, 18 Oct 2013 12:12:58 -0500
On 18 October 2013 01:46, Christopher Jefferson <chris_at_[hidden]>wrote:
> Here is a suggestion. How about we make the result of comparing pointers
> from different allocations into implementation-defined behaviour?
>
While it gets it out of this group, I don't think that addresses the real
problem.
Of course, if you think that:
bool isInArray = std::begin(a) <= p && p < std::end(a);
is an unreasonable piece of code, there are no problems. :-) If you think
it is reasonable, I don't see how making it implementation-defined behavior
stops the optimizer from rewriting that as:
bool isInArray = static_cast<bool>(p);
(possibly even 'isInArray = true;', but I'd have to study the rules for
nullptrs to see if this is allowed)
And developers can't count on implementation-defined behavior in portable
code. Look at all the pain people go through because C didn't nail down
(for valid reasons at the time) the signness of char. And the
implementation-defined behavior of the representation of char only has two
possible outcomes...
> Here is a suggestion. How about we make the result of comparing pointers
> from different allocations into implementation-defined behaviour?
>
While it gets it out of this group, I don't think that addresses the real
problem.
Of course, if you think that:
bool isInArray = std::begin(a) <= p && p < std::end(a);
is an unreasonable piece of code, there are no problems. :-) If you think
it is reasonable, I don't see how making it implementation-defined behavior
stops the optimizer from rewriting that as:
bool isInArray = static_cast<bool>(p);
(possibly even 'isInArray = true;', but I'd have to study the rules for
nullptrs to see if this is allowed)
And developers can't count on implementation-defined behavior in portable
code. Look at all the pain people go through because C didn't nail down
(for valid reasons at the time) the signness of char. And the
implementation-defined behavior of the representation of char only has two
possible outcomes...
-- Nevin ":-)" Liber <mailto:nevin_at_[hidden]> (847) 691-1404
Received on 2013-10-18 19:13:40