On 2009-10-23 12:11:20 +0200, Fawzi Mohamed <fmoha...@mac.com> said:

On 2009-10-22 18:11:01 +0200, Andrei Alexandrescu <seewebsiteforem...@erdani.org> said:

Fawzi Mohamed wrote:
On 2009-10-22 16:33:01 +0200, Jeremie Pelletier <jerem...@gmail.com> said:

bearophile wrote:
Andrei Alexandrescu:

With nested structs, however, you can't do much. You can pass them to a template, but I can't see some solid use cases there. My understanding is that nested structs have been implemented for completeness and consistency with nested classes.
Any good example of nested struct uses?

I have used nested static structs sometimes, when I need a struct just inside a function (like the main()) to avoid polluting the outer scope with the struct name.

Do you want to remove them from D2?

Bye,
bearophile

I've had similar uses, some win32 api routines require custom structs like BITMAPINFO, nested structs are neat to declare the struct right before its only usage.

However I don't think having a closure for that struct is really needed, nested functions already perform that task very well, and I use those quite often.

Jeremie

I use structs in nested functions as context for parallel recursive loops, actually my code would be nicer if circular referring structs would be allowed in nested functions (at the moment this is not possible, even with forward references).

Fawzi


Could you prepend "static" in front of their definition and still have them work?

Andrei

Sure, I thought nested structures were always static, and did not have access to the context, as classes do.

Fawzi

Ok I see that indeed in D2.0 struct have a pointer to the context, no I don't use that.

Fawzi

Reply via email to