[cfe-commits] [PATCH][MS] - operator __uuidof implementation part 1

Sebastian Redl sebastian.redl at getdesigned.at
Fri Sep 3 10:16:27 PDT 2010


On Sep 3, 2010, at 8:56 AM, Douglas Gregor wrote:

> 
> On Sep 1, 2010, at 8:49 PM, Francois Pichet wrote:
> 
>> Hi,
>> 
>> This patch is part 1 of X of my implementation of the Microsoft
>> __uuidof operator.
>> I want to go incrementally for this one because I don't want to submit
>> a huge patch.
>> The basic parsing is completed but some sema and all the code gen are missing.
>> 
>> __uuidof is similar to the typeid operator so I used that operator as
>> template of what to do.
> 
> +        // FIXME: is __uuidof really value-dependent if the type or 
> +        // expression are dependent?
> +  
> +        // FIXME: is __uuidof really value-dependent if the type or
> +        // expression are dependent?
> +        Operand->isTypeDependent() || Operand->isValueDependent()),
> +      Operand(Operand), Range(R) { }
> 
> Yes, it makes sense that __uuidof is never type-dependent and is only value-dependent if the argument is type- or value-dependent.
> 
> Is there anything dynamci about __uuidof? In other words, is the result of __uuidof always a constant, or can it involve run-time computation? If it does not involve run-time computation, then you can use the Unevaluated context rather than the PotentiallyPotentiallyEvaluated context.

If __uuidof is not dynamic (and I don't think it is), then it is value-dependent if the operand is type-dependent, but it doesn't care about whether the operand is value-dependent.

Sebastian



More information about the cfe-commits mailing list