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

Douglas Gregor dgregor at apple.com
Fri Sep 3 10:17:13 PDT 2010


On Sep 3, 2010, at 10:16 AM, Sebastian Redl wrote:

> 
> 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.

Yes, good point.

	- Doug



More information about the cfe-commits mailing list