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
>