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

Discussion in 'LANGS.C' started by _DEN_, Apr 24, 2007.

  1. Nouzui

    Nouzui New Member

    Blog Posts:
    0
    Joined:
    Nov 17, 2006
    Messages:
    856
    указатель на функцию, возвращающую указатель на функцию.. ::rolledeyes::
     
  2. Nouzui

    Nouzui New Member

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

    nop_ New Member

    Blog Posts:
    0
    Joined:
    Jun 21, 2007
    Messages:
    61
    результат не является ice.
    Вот так является:

    Code (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

    Blog Posts:
    0
    Joined:
    Jun 23, 2005
    Messages:
    183
    Location:
    Ukraine
    nop_
    почему?
     
  5. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    nop_

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

    nop_ New Member

    Blog Posts:
    0
    Joined:
    Jun 21, 2007
    Messages:
    61
    Потому что результат (размер массива) становится известным только на этапе выполнения, а не компиляции.
    Code (Text):
    1. int a[2];
    2. int b[get_sz(a)]; // (VC): expected constant expression
     
  7. nop_

    nop_ New Member

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

    RedLord Member

    Blog Posts:
    0
    Joined:
    Jun 23, 2005
    Messages:
    183
    Location:
    Ukraine
    nop_
    размер становится известным на этапе компиляции, т.к. именно на стадии компиляции происходит вывод аргументов шаблона.

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

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    nop_

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

    nop_ New Member

    Blog Posts:
    0
    Joined:
    Jun 21, 2007
    Messages:
    61
    Размер - да. Результат - нет.
     
  11. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    nop_

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