crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> PLEAC-C/Posix/GNU, Поваренная книга программиста C/C++ :)
Andrew Selivanov
  опции профиля:
сообщение 9.9.2008, 11:37
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Поваренная книга программиста C/C++ :)
http://pleac.sourceforge.net/pleac_cposix/index.html

Очень познавательно было почитать раздел Dates and Times рекомендую всем 8)

PS: порадовала конструкция
time_t curtime = ({ struct timeval timev; gettimeofday(&timev, NULL); timev.tv_sec; });

а что, необычно, радует глаз :)

Сообщение отредактировал Andrew Selivanov - 9.9.2008, 11:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 23.9.2008, 8:14
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Да нет, просто некоторые не понимают, что это просто демонстрация языковых возможностей. А раз уж мы пишем на С\С++, то нужно их знать от а до я. И не говорить, что за такой код руки отрывать нужно! :)
Например в коде исходников виндовс частенько встречается такая конструкция:
int main(int argc, char* argv[])
{
    for( --argc, ++argv; argc; argc--, argv++)
    {
       // ...
    }
}
Мудрено? Да!. Но, только в том случае если есть не понимание в конструкциях языка и в том как работает main... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 23.9.2008, 8:53
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Ссылка смешная, спасибо.
Несколько удручает безусловная привязка к *nix и gcc.
Кусок приведённого кода - это как рах расширение gcc, как и вложенные функции и массивы с длинной вычисляемой в рантайме.

Безусловно интересные и удобные фичи, но не стандартные не разу. :)

Кстати, аналогом приведённого кода на стандартном С++ будет видимо так:
//time_t curtime = ({ struct timeval timev; gettimeofday(&timev, NULL); timev.tv_sec; });
strict {time_t operator()() {timeval timev; gettimeofday(&timev, 0); return timev.tv_sec;}} secget;
time_t curtime = secget();

Оно несколько длиннее. :)

А про знание языка +1000.

П.С. Кстати, такие анонимные вложенные классы я реально применял вместо отсутствующих в С++ лямбд для работы с stl-евскими алгоритмами. Это в borland 5.0.x было. Сейчас так нельзя - а жаль.
Правда, в новый стандарт обещают честные лямбды включить! :)

Сообщение отредактировал Tonal - 23.9.2008, 10:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.2.2025, 21:37