Martin Sebor worte: > >Eric Lemings wrote: >> >> >> Martin Sebor wrote: >>> >>> Eric Lemings wrote: >>>> >>>> >>>>>> >>>>>>> template >>>>>>> struct __rw_integral_constant >>>>>>> { >>>>>>> static const T value = v; >>>>>>> typedef T value_type; >>>>>>> typedef integral_constant 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::value == true >>> >>> With integral_constant derived from __rw_integral_constant >>> the condition would fail. >> >> Not if it defined its own `type'. >> >> template >> struct integral_constant: __rw_integral_constant >> { >> typedef integral_constant 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 >