[SciPy-Dev] bool wrapper in sparse

Nathaniel Smith njs at pobox.com
Thu Jun 27 18:19:34 EDT 2013


On 27 Jun 2013 22:56, "Pauli Virtanen" <pav at iki.fi> wrote:
>
> 27.06.2013 00:22, Blake Griffith kirjoitti:
> > So basically I define a class that behaves like bool, but add compiler
> > specific parameters to make instance of this class 1 byte?
>
> Pretty much so, for known compilers (gcc, msvc).
>
> I'd also put an assertion somewhere in the code. Either inside one of
> the functions, or try to construct a compile-time assertion via some
> trickery. C++11 has static_assert that would do the job, but that's a
> bit too new standard to rely on. However, there are some tricks to do it
> in any case (check stackoverflow for "sizeof compile time assert").

Also it's unlikely that any trickery will be needed on any real world
compiler. Standard c++ guarantees you can cast between npy_bool* and
npy_bool_wrapper*; the only concern is that arrays might not have the same
memory layout. And I don't think any compiler will add padding to a 1 byte
struct. chars don't need word alignment! (But of course I could be wrong.)

-n
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20130627/71012a0d/attachment.html>


More information about the SciPy-Dev mailing list