C++ Logo

SG12

Advanced search

Subject: Re: [ub] bit_cast
From: Gabriel Dos Reis (gdr_at_[hidden])
Date: 2013-11-04 12:42:29


| -----Original Message-----
| From: ub-bounces_at_[hidden] [mailto:ub-bounces_at_[hidden]] On Behalf Of
| Lawrence Crowl
| Sent: Monday, November 4, 2013 10:40 AM
| To: WG21 UB study group
| Subject: Re: [ub] bit_cast
|
| The intent is to provide an alternative to the idiom
|
| int i; float f = *(float*)&i;
|
| The usual objection is "but memcpy is slow".
| The answer is "your compiler is better than you think".

If we give it enough latitude in terms of non-aliasing :-)
 
| On 11/4/13, Jeffrey Yasskin <jyasskin_at_[hidden]> wrote:
| > template<typename To, typename From>
| > To bit_cast(const From& from) {
| > static_assert(sizeof(To) == sizeof(from));
| > To result;
| > memcpy(result, from, sizeof(from));
| > return result;
| > }
| >
| > On Mon, Nov 4, 2013 at 7:51 AM, J. Daniel Garcia
| > <josedaniel.garcia_at_[hidden]> wrote:
| >> Can you elaborate what such a thing would be?
| >>
| >>
| >>
| >> On Mon, Nov 4, 2013 at 5:11 AM, Lawrence Crowl <Lawrence_at_[hidden]>
| >> wrote:
| >>>
| >>> Did we standardize bit_cast at all?
| >>>
| >>> It would help avoid the almost overwhelming temptation
| >>> for programmers to do the wrong thing.
| >>>
| >>> --
| >>> Lawrence Crowl
| >>> _______________________________________________
| >>> 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
| >>
| > _______________________________________________
| > ub mailing list
| > ub_at_[hidden]
| > http://www.open-std.org/mailman/listinfo/ub
| >
|
|
| --
| Lawrence Crowl
| _______________________________________________
| ub mailing list
| ub_at_[hidden]
| http://www.open-std.org/mailman/listinfo/ub


SG12 list run by sg12-owner@lists.isocpp.org