classes inside functions?!
Bruno Medeiros
brunodomedeirosATgmail at SPAM.com
Wed May 3 12:36:12 PDT 2006
Sean Kelly wrote:
> Bruno Medeiros wrote:
>> Sean Kelly wrote:
>>> Hasan Aljudy wrote:
>>>> I don't know if this is a bug or what, but for some reason, dmd
>>>> allows you to define classes/structs/unions/enums as statements
>>>> inside function bodies.
>>>> Oddly enough, you cannot define a template in the same way
>>>>
>>>> I didn't find in the docs any mention of whether aggregates are
>>>> allowed inside function bodies or not.
>>>>
>>>> Walter, is this the correct behaviour?
>>>
>>> It is. Templates are merely a special case as they must have
>>> external linkage.
>>
>> What do you mean by that? What is external linkage? Did you meant an
>> extern(al) storage class? (I just found out now something I unknew,
>> that are two distinct "extern" keywords/concepts in D)
>> And how exactly does that restricts templates not being allowed inside
>> functions?
>
> External linkage means that a symbol is visible from another module. But
> I mis-spoke. Template parameters must have external linkage. Templates
> themselves may only be defined at module or class scope. This is a
> carryover from C++, and I'm not certain whether there's a technical
> obstacle to function-scope templates or not. There doesn't seem to be,
> but then I've never implemented template support in a compiler before.
> Perhaps Walter could explain further.
>
>
> Sean
I see. Hum, can a local variable (local to a function) be external?
--
Bruno Medeiros - CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
More information about the Digitalmars-d
mailing list