On Thursday, May 10, 2018 06:31:09 Mike Franklin via Digitalmars-d-learn
wrote:
> On Thursday, 10 May 2018 at 06:22:37 UTC, Jonathan M Davis wrote:
> > Structs don't have that.
>
> Should they?
Honestly, I don't think that classes should have it, but changing it now
would break code (most
On Thursday, 10 May 2018 at 06:22:37 UTC, Jonathan M Davis wrote:
Structs don't have that.
Should they?
On Thursday, May 10, 2018 03:23:50 Mike Franklin via Digitalmars-d-learn
wrote:
> My understanding is that nested structs have an implicit context
> pointer to their containing scope.
A non-static struct inside a function does, but I suspect that you're
thinking about non-static nested c
?
Thanks,
Mike
My understanding is that nested structs have an implicit
context pointer to their containing scope.
Nesting with hidden context pointer is only for nested structs
inside functions.
https://dlang.org/spec/struct.html#nested
This is a source a confusion unfortunately.
;` then of course it
emits the following error:
Error: no property `x` for type `SS`
My understanding is that `SS` should have a context pointer to an
instance of `S`, but how do I navigate the members of `S` and
`SS`. Is this a bug?
Thanks,
Mike
My understanding is that nested structs have
union internalRep
try
static union InternalRep { /* note the capital letter */
/* snip */
}
InternalRep internalRep;; // still need a decl
Right. But why use the static keyword here?
Because nested structs by default carry a pointer to the containing
struct (or scope), which means it adds
Regan Heath:
I would stop nesting the struct definition. I think that is
both cleaner and closer to the original intent - the only
reason it is nested in C is because C allows definition and
declaration that way, and D does not. Then you don't need
static at all.
It's mostly a matter of
On 2013-12-11 23:45, Gary Willoughby wrote:
How to handle nested structs when converting C headers?
In the following snippet i'm currently converting, how would you convert
the nested typed union and structures? Would you declare them separately
then use their types in the Tcl_Obj struct
How to handle nested structs when converting C headers?
In the following snippet i'm currently converting, how would you
convert the nested typed union and structures? Would you declare
them separately then use their types in the Tcl_Obj struct? or is
there a nice way in D to nest them like C
On Wednesday, 11 December 2013 at 22:45:35 UTC, Gary Willoughby
wrote:
How to handle nested structs when converting C headers?
Nested structs and unions like in your example are supported in D
too, same syntax, same effect.
On Wednesday, 11 December 2013 at 22:54:04 UTC, Adam D. Ruppe
wrote:
Nested structs and unions like in your example are supported in
D too, same syntax, same effect.
Actually, no, not quite the same syntax, I didn't notice the name
at the end of the C one (in D, the anonymous nested structs
Adam D. Ruppe:
Nested structs and unions like in your example are supported in
D too, same syntax, same effect.
But don't forget to add to use static struct instad of struct.
Bye,
bearophile
On Wednesday, 11 December 2013 at 23:12:39 UTC, bearophile wrote:
Adam D. Ruppe:
Nested structs and unions like in your example are supported
in D too, same syntax, same effect.
But don't forget to add to use static struct instad of
struct.
Bye,
bearophile
Have you got an example
On Wednesday, 11 December 2013 at 23:27:57 UTC, Gary Willoughby
wrote:
On Wednesday, 11 December 2013 at 23:12:39 UTC, bearophile
wrote:
Adam D. Ruppe:
Nested structs and unions like in your example are supported
in D too, same syntax, same effect.
But don't forget to add to use static
On Wednesday, 11 December 2013 at 23:35:04 UTC, Gary Willoughby
wrote:
static union internalRep
try
static union InternalRep { /* note the capital letter */
/* snip */
}
InternalRep internalRep;; // still need a decl
Gary Willoughby:
Have you got an example because i always get:
tcl.d(713): Error: no identifier for declarator twoPtrValue
tcl.d(718): Error: no identifier for declarator ptrAndLongRep
tcl.d(719): Error: no identifier for declarator internalRep
In D you can't define a struct/union and use it
On Wednesday, 11 December 2013 at 23:36:11 UTC, bearophile wrote:
In D you can't define a struct/union and use it to define an
instance on the fly.
Well, you can if it is anonymous.
struct Foo {
union {
struct { ubyte a; ubyte b; }
ubyte[2] arr;
}
}
That works in D,
Adam D. Ruppe:
Well, you can if it is anonymous.
struct Foo {
union {
struct { ubyte a; ubyte b; }
ubyte[2] arr;
}
}
That works in D, and it makes foo.a == arr[0] and foo.b ==
arr[1];
Right :-) I like D structs.
Bye,
bearophile
On Wednesday, 11 December 2013 at 23:38:13 UTC, Adam D. Ruppe
wrote:
On Wednesday, 11 December 2013 at 23:35:04 UTC, Gary Willoughby
wrote:
static union internalRep
try
static union InternalRep { /* note the capital letter */
/* snip */
}
InternalRep internalRep;; // still need a decl
letter */
/* snip */
}
InternalRep internalRep;; // still need a decl
Right. But why use the static keyword here?
Because nested structs by default carry a pointer to the containing
struct (or scope), which means it adds extra baggage and you can't
create the nested without also having
I wrote a whole bunch of documentation for a struct that I later decided
to transplant inside another struct (because the two are closely
linked), and now the former struct's docs have vanished. Is this
expected behaviour?
T
--
I am a consultant. My job is to make your job redundant. -- Mr Tom
On Wed, Mar 07, 2012 at 03:49:26PM -0800, H. S. Teoh wrote:
I wrote a whole bunch of documentation for a struct that I later decided
to transplant inside another struct (because the two are closely
linked), and now the former struct's docs have vanished. Is this
expected behaviour?
[...]
On Wednesday, March 07, 2012 16:37:44 H. S. Teoh wrote:
On Wed, Mar 07, 2012 at 03:49:26PM -0800, H. S. Teoh wrote:
I wrote a whole bunch of documentation for a struct that I later decided
to transplant inside another struct (because the two are closely
linked), and now the former struct's
Hey all, I'm trying to rewrite a few .h files into D so I can call a C library.
One snag I've hit is this guy:
struct _tree_t {
_tree_t* next;
_tree_t* father;
_tree_t* sons;
}
D won't do the nested struct thing, so I need to convert this into something D
will like,
24 matches
Mail list logo