On Tuesday, 6 May 2014 at 15:13:41 UTC, Artur Skawina via
Digitalmars-d-learn wrote:
On 05/06/14 16:45, via Digitalmars-d-learn wrote:
On Tuesday, 6 May 2014 at 14:25:01 UTC, Artur Skawina via
Digitalmars-d-learn wrote:
I'm not sure why you'd want to wrap the .offsetof expression
in
a template
Artur Skawina:
But I have no idea why anybody would want to wrap this trivial
expression like that.
And, I have no idea if the, hmm, /unconventional/ D offsetof
semantics
are in the bugzilla. It's not really a "bug", but a design
mistake...
https://issues.dlang.org/show_bug.cgi?id=12714
By
Artur Skawina:
And, I have no idea if the, hmm, /unconventional/ D offsetof
semantics
are in the bugzilla. It's not really a "bug", but a design
mistake...
Design mistakes are valid bugzilla entries. At worst the bad
behavior could be documented. But often it's possible to fix the
design to
On 05/06/14 16:45, via Digitalmars-d-learn wrote:
> On Tuesday, 6 May 2014 at 14:25:01 UTC, Artur Skawina via Digitalmars-d-learn
> wrote:
>> I'm not sure why you'd want to wrap the .offsetof expression in
>> a template, but it can easily be done like this:
>>
>>enum offsetOf(alias A, string S
On Tuesday, 6 May 2014 at 14:25:01 UTC, Artur Skawina via
Digitalmars-d-learn wrote:
I'm not sure why you'd want to wrap the .offsetof expression in
a template, but it can easily be done like this:
enum offsetOf(alias A, string S) = mixin("A."~S~".offsetof");
Great, that's even shorter.
So
Artur Skawina:
Keep in mind that D's offsetof is flawed - if the object does
not contain the requested member, but implicitly converts to
another one that does have such field then the expression
compiles, but yields a bogus value. Eg
struct S { int a, b, c; S2 s2; alias s2 this; }
stru
I'm not sure why you'd want to wrap the .offsetof expression in
a template, but it can easily be done like this:
enum offsetOf(alias A, string S) = mixin("A."~S~".offsetof");
Keep in mind that D's offsetof is flawed - if the object does not
contain the requested member, but implicitly convert
On Tuesday, 6 May 2014 at 11:09:37 UTC, Andrey wrote:
On Monday, 5 May 2014 at 17:55:37 UTC, Meta wrote:
enum offsetof(T, string field) = mixin(type.stringof ~ "." ~
field ~ ".offsetof");
To ensure that a syntactically valid symbol is passed as the
type.
Interestingly, but this code does
On Monday, 5 May 2014 at 17:55:37 UTC, Meta wrote:
enum offsetof(T, string field) = mixin(type.stringof ~ "." ~
field ~ ".offsetof");
To ensure that a syntactically valid symbol is passed as the
type.
Interestingly, but this code doesn't compile:
enum offsetof(typenfield) = mixin(type.st
On Monday, 5 May 2014 at 04:05:35 UTC, Mark Isaacson wrote:
Something like:
unittest {
enum offsetof(string type, string field) = mixin(type ~ "." ~
field ~ ".offsetof");
struct StrToBob {
string str;
int bob;
}
writeln(offsetof!("StrToBob", "bob"));
}
?
If not that then I'
On Monday, 5 May 2014 at 04:05:35 UTC, Mark Isaacson wrote:
enum offsetof(string type, string field) = mixin(type ~ "." ~
field ~ ".offsetof");
That's exactly what I'm looking for!!
On Monday, 5 May 2014 at 09:04:29 UTC, safety0ff wrote:
auto regex = ctRegex!(`offsetof\(([^,]+),([^)]+)\)`);
auto sink = appender!(char[])();
foreach (filename; args[1..$])
{
auto text = readText(filename);
sink.reserve(text.length)
On Monday, 5 May 2014 at 03:57:54 UTC, Andrey wrote:
A similar D code is, as far as I know,
type.field.offsetof
Is there an any way to make a corresponding D template?
What you've written is the specific syntax for offsetof in D.
If the intent is to create a template so that you can simply
Andrey:
A similar D code is, as far as I know,
type.field.offsetof
Yes, it's a built-in feature of D.
Is there an any way to make a corresponding D template?
I don't understand. Please explain better.
Bye,
bearophile
On Monday, 5 May 2014 at 03:57:54 UTC, Andrey wrote:
Guys, could someone help me with suitable template?
I have C macro, which calculates the offset of the field in a
struct:
#define offsetof(type, field) ((long) &((type *)0)->field)
A similar D code is, as far as I know,
type.field.offse
Guys, could someone help me with suitable template?
I have C macro, which calculates the offset of the field in a
struct:
#define offsetof(type, field) ((long) &((type *)0)->field)
A similar D code is, as far as I know,
type.field.offsetof
Is there an any way to make a corresponding D tem
16 matches
Mail list logo