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

Тема в разделе "LANGS.C", создана пользователем _DEN_, 2 май 2009.

  1. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    char + int приведется к int.

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

    А теперь:

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

    Код (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

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    в С++0x будут встроенные средства, а пока только traits
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    GoldFinch

    typeof?
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_method_for_computing_return_type_of_function_objects