Sunday, May 24, 2009

C++ 0x

Поставил себе gcc 4.5 из лямбда бранча. Поиграюсь пока с тем, что успели реализовать из С++0x.
Заодно на виртуальную машину поставил windows7 + msvs 2010beta. Там тоже частично реализован C++0x (lambda, auto, static_assert).
Интересно сравнить подоходы реализации тех же лямбд и замыканий у микрософта и gcc.

Пока что нашёл баг в студии.
В таком коде
auto a = []() { return [](){return 0.0f;}; };

Компилятор ругается, что лямбда верхнего уровня имеет возвращаемый тип void, поэтому функция не должна ничего возвращать. Но ведь тип возвращаемого значения должен выводится, если он не указан, а не считаться что он void?

gcc на этой строчке вообще умирает с sigsegv

upd.
Ещё баг в gcc нашёл.
Такой вот код:

function Foo::GetEventHandler()
{
return [=](){this->onSomeEvent();};
}

при попытке вызова функтора получим sigsegv, так как this почему-то в лямбду захватывается нулевой.

если написать вот так:

return [this](){this->onSomeEvent();};
то всё ок.

в vc10 корректно работают оба варианта

Monday, March 02, 2009

http://www.trumphurst.com/cpplibs/cpplibs.php
Довольно полезный сайт, содержащий базу различных С++ библиотек и небольшое описание к ним. Как я понял, база постоянно обновляется.

Friday, January 16, 2009

Подборка документов.

Ужас не писал сюда почти год. Буду исправляться.

На своей страничке cyberzx.com начал вести подборку различных статей, касающихся программирования и создания игр. Пока там собрал в основном статьи по анимации, которые мне показались очень полезными и интересными.
Но так же добавлю туда статьи по компьютерной графике, С++, ФП, компьютерной математике, коих у меня набралось довольно большое количество.
В первую очередь я это делаю для себя, удобно когда всё находится под рукой и в одном месте. Но если кому-то собранный материал тоже пригодиться, я буду только рад.