incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Travis Vitek" <Travis.Vi...@roguewave.com>
Subject RE: An internal add_const_reference type trait
Date Tue, 10 Jun 2008 16:34:14 GMT
 

>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

>Also, it'd be nice if you jot down some of these plans for type traits
>on the C++0x Wiki <http://wiki.apache.org/stdcxx/Cpp0x>; e.g., header
>names, internal utilities, TODO work, etc.  ;)

Yes, I know. Given that discussion on the topic has died down I could
actually document what we've arrived at.

>
>Thanks,
>Brad.
>

Mime
View raw message