Friday, February 16, 2007

 
Головоловка
Синтаксис языка С++ иногда просто поражает.  
Как Вы думаете что означает это объявление:

char (*(*(*C::foo(int(C::*)(int const) const) const))())[][1];

Comments:
М-м-м... Буду не скромным, но полагаю, если что-то можно сделать, вовсе не означает что это нужно делать ;-) Одна из целей C++ был именно уход от зубодробительных сишных конструкций =)
 
Согласен с Вами.
Функция, которая принимает и возвращает функцию достаточно редкое явление. Тем не менее эта декларация (несколько видоизмененная) встретилась мне в реальном коде.
 
Ну поделись всё же что эта "надпись" значит :)
 
Что-то вроде матрицы указателей на функцию, значение которых задается результатом вызова функции, принимающей указатель на функцию.

Автор когда-то неслабо увлекался Ассемблером =)
А для чего это дело использовалось?
 
а еще будут головолоВки? =)
 
  Как Вы думаете что означает это объявление:char (*(*(*C::foo(int(C::*)(int const) const) const))())[][1];
 
а значить це те, що код писав lisp програмер )))
 
This comment has been removed by a blog administrator.
 
Есть правило разбора таких выражений "право-лево" называется.

http://www.kalinin.ru/programming/cpp/17_07_00.shtml

тут можно ознакомиться)
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?