Boost logo

Boost :

Subject: Re: [boost] type traits not in boost.type_traits
From: Edward Diener (eldiener_at_[hidden])
Date: 2011-02-26 09:25:06


On 2/26/2011 4:21 AM, Frédéric Bron wrote:
>> Have you looked for compound traits in other libraries that could be added to TypeTraits for convenience? That is, if it is very common to combine certain traits, then a single trait that captures the compound would simplify a good deal of code.

I do not think you should worry too much about what else exists right
now as long as you feel you have a complete set of operators, which
should be the main focus of your library as I see it. There can be time
enough if your library gets accepted into Boost for other implementers
of type traits like extensions to use your operators instead of what
they had been using in order to avoid redundancy. It's not your job to
delay finishing your work in any way to worry about redundancies in all
other Boost libraries.

>
> No I have not.
> what about is_voidstar? I am using this a lot in my addition.
> Would it be meaningful to add this?
>
> I checked a bit more for duplicates:
> * these are duplicate:
> . boost/detail/has_default_constructor.hpp and
> boost/type_traits/has_trivial_constructor.hpp
> . boost/type_traits/is_float.hpp and
> boost/type_traits/is_floating_point.hpp (is_float is not in the
> documentation)
>
> * these would be nice to have in type_traits
> . boost/mpl/has_xxx.hpp

These are in my TTI library as BOOST_TTI_HAS_TYPE and
BOOST_TTI_HAS_TEMPLATE.

> . boost/mpl/math/is_even.hpp
> . boost/icl/type_traits/is_container.hpp
> . boost/icl/type_traits/is_numeric.hpp
>
> * are these duplicates?
> . boost/ptr_container/detail/is_convertible.hpp and
> boost/ptr_container/detail/is_convertible.hpp
> . boost/icl/type_traits/is_discrete.hpp and boost/type_traits/is_scalar.hpp
> . boost/preprocessor/facilities/is_empty.hpp and
> boost/type_traits/is_empty.hpp
> . is_member_function_pointer.hpp in boost/function_types and boost/type_traits
> . is_member_object_pointer.hpp in boost/function_types and boost/type_traits
> . is_member_pointer.hpp in boost/function_types and boost/type_traits
>
> * will be part of the type trait extension
> . boost/detail/is_incrementable.hpp ->
> has_operator_prefix_increment<T> and has_operator_postfix_increment<T>
> . boost/exception/detail/is_output_streamable.hpp ->
> has_operator_left_shift<OStream, T>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk