[cfe-dev] PATCH: Overloaded function declarations in C++

Argiris Kirtzidis akyrtzi at gmail.com
Tue Sep 9 01:36:18 PDT 2008


Doug Gregor wrote:
> On Mon, Sep 8, 2008 at 1:38 PM, Daniel Dunbar <daniel at zuster.org> wrote:
>   
>> I agree with Argiris that having an OverloadType and Decl is counterintuitive,
>> although I think I understand the reason.
>>     
>
> Does Argiris still agree with this? I think I may have converted him :)
>   

Yes, praise the lord, I am a "believer" now :)

> On Mon, Sep 8, 2008 at 3:36 PM, Daniel Dunbar <daniel at zuster.org> wrote:
>   
>> The other part that seemed fake was that they are not a "decl" in the sense of
>> actually defining anything or existing per se in the source. Are they
>> a "Decl" for
>> any reason other than shoehorning into the types the Parser expects? And if so,
>> do they need to be a ValueDecl?
>>     
>
> I think they are declarations in the same sense that using
> declarations are declarations: while they don't necessarily introduce
> a new entity with a name, they do declare a binding for a particular
> name to one or more entities.
>
> OverloadedFunctionDecls are ValueDecls because DeclRefExpr needs to be
> able to refer to them. Plus, OverloadedFunctionDecls are "values" just
> like other functions... the only difference being that we don't know
> which value we're referring to just yet.
>   

Is OverloadedFunctionDecl ever going to be used as a ValueDecl ?
If not, we can make it more compact as a NamedDecl, and use a 
specialized OverloadRefExpr(OverloadedFunctionDecl) for expressions. (or 
make DeclRefExpr accept a NamedDecl).


-Argiris



More information about the cfe-dev mailing list