Как вывести массив???

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

  1. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    указатель на функцию, возвращающую указатель на функцию.. ::rolledeyes::
     
  2. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    эм.. загнался
    просто объявление функии, возвращающей указатель на функцию
     
  3. nop_

    nop_ New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2007
    Сообщения:
    61
    результат не является ice.
    Вот так является:

    Код (Text):
    1. #include <iostream>
    2.  
    3. template <class T, int N> char (&size(T(&)[N]))[N];
    4.  
    5. int main()
    6. {
    7.   int a[23];
    8.   int b[sizeof(size(a))];
    9.   std::cout << sizeof(size(b)) << std::endl;
    10. }
     
  4. RedLord

    RedLord Member

    Публикаций:
    0
    Регистрация:
    23 июн 2005
    Сообщения:
    183
    Адрес:
    Ukraine
    nop_
    почему?
     
  5. _DEN_

    _DEN_ DEN

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

    Функция и принимает, и возвращает ссылку на массив? И в чем тут айс? Вот секс с двумя азиатками - это я понимаю айс!
     
  6. nop_

    nop_ New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2007
    Сообщения:
    61
    Потому что результат (размер массива) становится известным только на этапе выполнения, а не компиляции.
    Код (Text):
    1. int a[2];
    2. int b[get_sz(a)]; // (VC): expected constant expression
     
  7. nop_

    nop_ New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2007
    Сообщения:
    61
    Да. Размер массива, на который возвращается ссылка равен выведенному из аргумента размеру. Причем у функция только объявлена, но не определена. Она не вызывается.
    ice - integral constant expression.
     
  8. RedLord

    RedLord Member

    Публикаций:
    0
    Регистрация:
    23 июн 2005
    Сообщения:
    183
    Адрес:
    Ukraine
    nop_
    размер становится известным на этапе компиляции, т.к. именно на стадии компиляции происходит вывод аргументов шаблона.

    другое дело, что вызов функции не является сonstant expression.
     
  9. _DEN_

    _DEN_ DEN

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

    Я думал айс типа как в рекламе))
     
  10. nop_

    nop_ New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2007
    Сообщения:
    61
    Размер - да. Результат - нет.
     
  11. _DEN_

    _DEN_ DEN

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

    Гы) Так размер и результат это не одно и то же, а ты так пишешь как будто одно. Да и результат тут никого не интересует.