On Sunday, 26 January 2014 at 23:27:58 UTC, Stanislav Blinov wrote:
On Sunday, 26 January 2014 at 20:56:29 UTC, Nordlöw wrote:

My idea to make `getBit` work on all types that have value semantics.

All of them? Arbitrary structs too? floating point types? Static arrays? Might I ask... why do you need this sort of thing? :)

For bit-parallel run-length encoding for efficient serialization of sets of std.datetime:SysTime structures (16 bytes). I'm trying to differentially pack sets of SysTimes entries more efficiently because for a given directory containing files many of these files often share the majority of their bits. Meta-code:

foreach (n; 0..SysTime.sizeof)
  RLC all n-bits for all SysTimes

It is more an interesting experiment :)

That's why I need the cast (I think). Is there a traits to check if a type has value semantics or not?

The closest would be std.traits.hasIndirections.

Does this work recursively on containing types?

Also is there a trait to check if a type supports a specific operation such as bitwise and `&`? I could always use `__traits(compiles, ...)` but standardization is good.

No there isn't.

Thx.

Reply via email to