Eric Lemings wrote:
>
>Travis Vitek wrote:
>> 
>> >Eric Lemings wrote:
>> >
>> >Travis,
>> >
>> >According to our plans for type traits, is this how you 
>> would define an
>> >internal class template that combines the add_const<T> and
>> >add_reference<T> type modifiers?
>> >
>> >    #include <rw/_type_traits.h>
>> >
>> >    _RWSTD_NAMESPACE (__rw) {
>> >
>> >    template <class _TypeT>
>> >    class __rw_add_const_ref
>> >    {
>> >        typedef _TYPENAME __rw_add_const<_TypeT>::type      _ConstT;
>> >
>> >    public:
>> >
>> >        typedef _TYPENAME __rw_add_reference<_ConstT>::type type;
>> >    };
>> >
>> >    }   // namespace __rw
>> >
>> 
>> It is really close. I'd probably make it a struct and if 
>there was any
>> complicated logic it would move into an impl struct to reduce 
>> clutter in
>> the outer class.
>> 
>> If you need the above trait, I should let you know that TR1 had
>> add_reference, but C++0x replaces that with add_lvalue_reference and
>> add_rvalue_reference. So it you should probably use the new 
>> names as we
>> probably won't have an __rw_add_reference trait.
>> 
>>      #include <rw/_typetraits.h>
>> 
>>      _RWSTD_NAMESPACE (__rw) {
>> 
>>      template <class _TypeT>
>>      struct __rw_add_const_ref
>>      {
>>          typedef _TYPENAME __rw_add_lval_ref<
>>               _TYPENAME __rw_add_const<_TypeT>::type
>>           >::type type;
>>      };
>> 
>>      }   // namespace __rw
>
>Actually, wouldn't this be even better?
>
>       template <class _TypeT>
>       struct __rw_add_const_ref
>           : __rw_add_lval_ref<_RWSTD_ADD_CONST(_TypeT)> { };
>

Ah yes, assuming that I continue to provide the macros. :)


>Brad.
>

Reply via email to