среда, октября 29, 2008

Опубликован драфт C++0x

Драфт C++0x [.pdf]. В нем будут делаться багфиксы, будут некоторые уточнения, но ничего принципиально нового уже не будет. Герб Саттер говорит, что это что-то вроде бета версии. Планируется, что после нее будет еще одна бета, а потом уже релиз.

пятница, октября 24, 2008

Странные примеры использования const

const - штука хорошая. Благодаря ему мы можем писать const-корректный код и избежать части глюков.

А вот несколько необычные примеры применения const.

1. void MyFunction ( const int var);
2. const int MyFunction();
3. int const MyFunction();

Предлагаю подумать над вопросами "что бы это значило?" и "где это можно применить?". И написать об этом в комментарии, если не лень.

Я свое мнение напишу чуть позже.

Updated
Как и обещала, мое мнение:
1. Нельзя будет поменять переменную var внутри функции. Я не знаю, возможно в чьих-нибудь стандартах кодирования заставляют так делать, но вообще это не принято.

2 и 3, как многие уже заметили, эквивалентны. И бесполезны. Обратите внимание, что возвращаемое значение const int. Если вы возвращаете класс, то смысл в этом будет.
Нет, можно придумать какие-нибудь странные использования этих выражений и даже заставить некоторые компиляторы их проглотить. Но вот Comeau на такое скажет

"ComeauTest.c", line 2: warning: type qualifier on return type is meaningless
const int MyFunction()

И будет прав. Бессмысленны и const, и volatile. Я как-то случайно наткнулась на информацию, что когда-то в gcc было придумано некое расширение и volatile void имело какой-то смысл. Но это было давно и ныне deprecated.

Это к вопросу о применении. А вот вопрос "что это может означать?" - интереснее. Для меня любой из приведенных примеров кода - повод для беспокойства.
Например, вот это:
int const MyFunction()

Это скорее всего кто-то перепутал с
int MyFunction() const


В-общем, это хороший повод пройтись по коммитам, найти автора и спросить "чувак, что ты хотел этим сказать?"

понедельник, октября 20, 2008

Четыре миллиарда рублей

Интересные слухи бродят среди программистов. Все уже, наверное, слышали про 4 миллиарда рублей, которые были начислены по ошибке некоему оперативнику. Который их вернул. Однако, прочитав внимательно заметки об этом удивительном происшествии, вы наверняка найдете упоминания о том, что до начисления у него на счету был "почти ноль". А четыре миллиарда - это примерно 232. Ну дальше рассказывать не надо, я думаю :-).

Metroid Prime 3: Corruption

Довелось мне тут поиграть в Metroid Prime 3: Corruption, это 3Д шутер выпущенный под Wii. Надо сказать, что 3Д шутер на Wii - это в принципе странная идея. Они там попытались как-то использовать возможности Wii'ных контроллеров, но получилось несколько притянуто за уши. Однако в плане программирования и графики игра сделана очень хорошо. Из платформы выжали вообще что только можно было, поэтому игра выглядит весьма достойно.
Игру лучше смотреть в движении, на YouTube есть ролик, но качество оставляет желать лучшего...