Date: Fri, 18 Oct 2013 10:43:16 -0500
Herb Sutter <hsutter_at_[hidden]> writes:
| How about an omnibus EWG proposal for such things? There way still be important
| variation in some areas but it does seem like a few could be nailed down
| now...?
C99 regulates sized integer typed through <stdint.h> (adopted by C++11),
but types such as int8_t or uint8_t are still optional and not required.
Additionally these sized integer types are required not to have padding
bits or trap representations, and use two's complement. Is the proposal
that these types be required, as opposed optional like in C?
-- Gaby
|
| Herb
| -------------------------------------------------------------------------------
| From: Stephan T. Lavavej
| Sent: 10/18/2013 12:08 AM
| To: Jeffrey Yasskin; WG21 UB study group
| Subject: Re: [ub] Justification for < not being a total order on pointers?
|
| Yep - I intended for less<void> to simply be op< in functor form, with no
| additional semantics.
|
| Separately, I believe that the Core Language should simply recognize the fact
| that all machines these days have a flat memory model. (Two's complement and
| 8-bit bytes would be nice too.)
|
| STL
|
| -----Original Message-----
| From: Jeffrey Yasskin [mailto:jyasskin_at_[hidden]]
| Sent: Wednesday, October 16, 2013 3:14 PM
| To: WG21 UB study group; Stephan T. Lavavej
| Subject: Re: [ub] Justification for < not being a total order on pointers?
|
| On Wed, Oct 16, 2013 at 3:03 PM, Nevin Liber <nevin_at_[hidden]> wrote:
| > On 16 October 2013 16:51, Christopher Jefferson <chris_at_[hidden]>
| > wrote:
| >>
| >>
| >>
| >> Oh, I did not realise that. I assume those weasel words are:
| >>
| >> 20.10.5: 14 For templates greater, less, greater_equal, and
| >> less_equal, the specializations for any pointer type yield a total
| >> order, even if the built-in operators <, >, <=, >= do not.
| >>
| >> I did not think that applied for the std::less<void> specialisation,
| >> but I can imagine how you could read that it did.
| >
| >
| > Hmmm... I think you are right... although I thought the intention was it
| > works for less<void>.
|
| IIRC, Stephan intentionally left the weasel-words out of
| std::less<void>, and we've discussed that choice before and generally
| found it reasonable.
| _______________________________________________
| ub mailing list
| ub_at_[hidden]
| http://www.open-std.org/mailman/listinfo/ub
| _______________________________________________
| ub mailing list
| ub_at_[hidden]
| http://www.open-std.org/mailman/listinfo/ub
| How about an omnibus EWG proposal for such things? There way still be important
| variation in some areas but it does seem like a few could be nailed down
| now...?
C99 regulates sized integer typed through <stdint.h> (adopted by C++11),
but types such as int8_t or uint8_t are still optional and not required.
Additionally these sized integer types are required not to have padding
bits or trap representations, and use two's complement. Is the proposal
that these types be required, as opposed optional like in C?
-- Gaby
|
| Herb
| -------------------------------------------------------------------------------
| From: Stephan T. Lavavej
| Sent: 10/18/2013 12:08 AM
| To: Jeffrey Yasskin; WG21 UB study group
| Subject: Re: [ub] Justification for < not being a total order on pointers?
|
| Yep - I intended for less<void> to simply be op< in functor form, with no
| additional semantics.
|
| Separately, I believe that the Core Language should simply recognize the fact
| that all machines these days have a flat memory model. (Two's complement and
| 8-bit bytes would be nice too.)
|
| STL
|
| -----Original Message-----
| From: Jeffrey Yasskin [mailto:jyasskin_at_[hidden]]
| Sent: Wednesday, October 16, 2013 3:14 PM
| To: WG21 UB study group; Stephan T. Lavavej
| Subject: Re: [ub] Justification for < not being a total order on pointers?
|
| On Wed, Oct 16, 2013 at 3:03 PM, Nevin Liber <nevin_at_[hidden]> wrote:
| > On 16 October 2013 16:51, Christopher Jefferson <chris_at_[hidden]>
| > wrote:
| >>
| >>
| >>
| >> Oh, I did not realise that. I assume those weasel words are:
| >>
| >> 20.10.5: 14 For templates greater, less, greater_equal, and
| >> less_equal, the specializations for any pointer type yield a total
| >> order, even if the built-in operators <, >, <=, >= do not.
| >>
| >> I did not think that applied for the std::less<void> specialisation,
| >> but I can imagine how you could read that it did.
| >
| >
| > Hmmm... I think you are right... although I thought the intention was it
| > works for less<void>.
|
| IIRC, Stephan intentionally left the weasel-words out of
| std::less<void>, and we've discussed that choice before and generally
| found it reasonable.
| _______________________________________________
| ub mailing list
| ub_at_[hidden]
| http://www.open-std.org/mailman/listinfo/ub
| _______________________________________________
| ub mailing list
| ub_at_[hidden]
| http://www.open-std.org/mailman/listinfo/ub
Received on 2013-10-18 17:43:31