Выбор возвращаемого типа

Discussion in 'LANGS.C' started by _DEN_, May 2, 2009.

  1. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    char + int приведется к int.

    int + char тоже приведется к int.

    А теперь:

    Code (Text):
    1. template <class T1, class T2>
    2. ??? operator + (pixel<T1> const& p1, pixel<T2> const& p2)
    3. {
    4.     return ???;
    5. }
    Как определить, каким должен быть результат? Мне пока что ничего лучше этого в голову не приходит:

    Code (Text):
    1. template <class T1, class T2>
    2. typename type_traits<T1, T2>::greater operator + (pixel<T1> const& p1, pixel<T2> const& p2)
    3. {
    4.     typename type_traits<T1, T2>::greater result;
    5.  
    6.     result.r = p1.r + p2.r;
    7.     result.g = p1.g + p2.g;
    8.     result.b = p1.b + p2.b;
    9.  
    10.     return result;
    11. }
     
  2. GoldFinch

    GoldFinch New Member

    Blog Posts:
    0
    в С++0x будут встроенные средства, а пока только traits
     
  3. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    GoldFinch

    typeof?
     
  4. GoldFinch

    GoldFinch New Member

    Blog Posts:
    0
    http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_method_for_computing_return_type_of_function_objects