Boost logo

Boost :

From: Alexander Nasonov (alnsn_at_[hidden])
Date: 2006-04-05 02:37:56

Andy Little <andy <at>> writes:
> I wonder if the three functions are necessary together?
> Either there should only be promote or there should only be
integral_promotion, float_promotion.

I was never sure about floating_point_promotion<> and promote<>.
Section of the standard conviced me to add them.
It defines Promotion category of standard conversion sequences.

> The main rationale for integral_promotion is for enums. float
> promotion and promotion usage are already handled by Boost.Typeof.

I would say, floating_point_promotion<> is easily implementable
even without Boost.Typeof.

> ints and floats are very different entities and I wonder if its
> approporiate to apply the same behaviours.

I agree.

> I dont really like the fact types unrelated to int or floats can silently
> pass through as a general rule, but I think I see the reasoning given
> the use cases. It could be documented though.

It's documented by not emphasized:

  type: T if integral promotion can't be applied to an rvalue of type T;
  otherwise, a type of integral promotion of an rvalue of type T.
  Resulting type is same cv-qualified as T.

> I think it needs some more rationale and examples. I understand its
> meant to fit with type_traits, but the documentation for other
> type_traits does include examples and there is room for a bit of
> rationale too.

Only few type_traits classes are explained in tutorial.
I can't add mine without asking the authors.

> I vote yes to accept it.


Alexander Nasonov

Boost list run by bdawes at, gregod at, cpdaniel at, john at