Martin Sebor worte:
>
>Eric Lemings wrote:
>>  
>> 
>> Martin Sebor wrote:
>>>
>>> Eric Lemings wrote:
>>>>  
>>>>
>>>>>>
>>>>>>> template <class T, T v>
>>>>>>> struct __rw_integral_constant
>>>>>>> {
>>>>>>>   static const T value = v;
>>>>>>>   typedef T value_type;
>>>>>>>   typedef integral_constant<T,v> type;
>>>>>>> }
>>>>
>>>> In all cases I've seen, `type' refers to type of self for identity
>>>> properties.  This typedef would not hold up the identity property.
>>> IIUC, for every specialization X of integral_constant, this
>>> must hold:
>>>
>>>    is_same<X, typename X::type>::value == true
>>>
>>> With integral_constant derived from __rw_integral_constant
>>> the condition would fail.
>> 
>> Not if it defined its own `type'.
>> 
>>      template <class T, T v>
>>      struct integral_constant: __rw_integral_constant<T, v>
>>      {
>>        typedef integral_constant<T, v> type;
>>      };
>
>Good point! This would effectively break the problematic dependency,
>wouldn't it, Travis?
>

Yes, it does allow us to use the name 'type' in both contexts.

>Martin
>

Reply via email to