Инициализация базовых типов: кто тупит?

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

  1. RedLord

    RedLord Member

    Публикаций:
    0
    Регистрация:
    23 июн 2005
    Сообщения:
    183
    Адрес:
    Ukraine
    надеюсь, что скоро услышим ответ Саттера
     
  2. _DEN_

    _DEN_ DEN

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

    Открою тебе великую тайнну - в С++ есть шаблоны, и явная инициализация не всегда возможна.

    Код (Text):
    1. template <class T>
    2. T foo()
    3. {
    4.     T t = T();
    5.     some_stream >> t;
    6.     return t;
    7. }
    RedLord

    Пока молчит, падонаг :'-(
     
  3. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    _DEN_
    Однако, мне нечего возразить :)
    Собственно о чем и идет речь - в VC70 для T = int в этом примере, оно инициализируется нулем, а если T есть класс с полем типа int и явным конструктором, в котором оно явно не инициализируется, то будут крокозябры. Но здесь-то как раз и возможна явная инициализация, хотя интуиция мне подсказывает, что если к делу подойти со злым энтузиазмом, то можно подобрать и контрпример. :)