Home
 

Электрический гвоздодер

About Свежие записи

Инлайн-функция с разными определениями 20 Дек, 2007 @ 16:56
На интересную подставу наткнулся сегодня. Деструктор std::auto_ptr вдруг отказался вызывать правильный деструктор хранимого объекта в давно работающем и не изменявшемся коде. Вот пример кода, который демонстрирует проблему.
Этот код может вывести "Hi!"... а может и не вывести, как повезет.
Объяснение феномена )

Снова о ребрах неориентированного графа 12 Дек, 2007 @ 11:37
Вот исходники теста к моему предыдущему посту, дополненные несколькими вариантами min/max (как подсказал [info]sim0nsays).
Мои результаты )

Идентификаторы ребер неориентированного графа 11 Дек, 2007 @ 17:05
Задача: сделать ключ, по которому можно будет найти ребро неориентированного графа. Т. е. если вершина графа обозначена целочисленным идентификатором, то ребро такого графа можно обозначить как (a,b), причем (a,b) и (b,a) — это одно и то же ребро.
Хочется сделать так, чтобы не приходилось сортировать идентификаторы вершин a и b перед занесением их в ключ. Иными словами, если ключ у нас, это std::pair<int,int>, то нужно избежать условного перехода при конструировании этой пары. Как оказалось, решение есть: вместо a и b заносим в пару a+b и abs(a-b). Эти два числа однозначно идентифицируют наше ребро (a,b).

Маленький отладочный трюк 5 Дек, 2007 @ 17:40
Часто бывает, что на момент проявления ошибки установить ее причину уже невозможно: код, который содержит ошибку уже выполнен. Особенно неприятно, когда нет четких steps-to-reproduce и трудно определить, куда и с каким условием поставить точку останова перед ошибочным кодом. В такой момент мечтаешь об отладчике с поддержкой time travel.
Но есть несколько простых способов "шагнуть в прошлое" для бедных... )

ICFPC 2007 24 Июл, 2007 @ 15:44
Хоть сам и не участвовал, но сочувствовал :). Если кто не в курсе, что такое ICFP Contest, смотрите официальный сайт. Вот ссылки на отчеты от участников (постараюсь пополнять):Read more... )
Other entries
» Вера в науке
Не могу я понять, почему академики, выступившие с открытым письмом, могут говорить, что Любая наука оперирует фактами, логикой, доказательствами, но отнюдь не верой. Это очевидная ложь. Мы все знаем, например, что в такой области науки, как геометрия, на веру принимается ее основа, аксиомы. Исходя из определения аксиомы видим, что это научный термин для обозначения вещей в научных теориях, которые принимаются на веру.

Врут господа академики!
» О платных аккаунтах dtf.ru
Может быть я чего-то не понимаю, но на мой скромный взгляд введение платных аккаунтов на dtf.ru выглядит несколько преждевременным. Нет тех бонусов, за которые стоило бы платить деньги. Для сравнения могу предложить описание платных аккаунтов на gamedev.net. Как несложно видеть, платный аккаунт на gamedev.net может даже окупиться, чего только стоят скидки на книги и на ionForge Evolution.
Могли бы хоть на участие в КРИ скидки давать, чтоб хоть какой-нибудь ощутимый бонус был. Хотя "малиновые штаны dtf", я думаю, будут атрибутом престижа в индустрии :).

UPDATE: Вижу, что уже начинают становиться :)
» О разработке...
- Почему вы пилите тупой пилой, так ведь очень долго и трудно?
- Да некогда точить, пилить надо!

Взято отсюда.
» Autoexp.dat
Предназначен всем, кто страдает от невозможности увидеть содержимое stlport'овых std::list, std::map, std::auto_ptr, boost'овых boost::shared_ptr, boost::weak_ptr и т. п. Проверено на STLport 5.1.3 и boost 1.34.0.

autoexp.dat )

» The Principle Of Too Much Magic

You know you've used too much magic if...

  • ...you are no longer certain what will happen when you start your application
  • ...you have to check the framework docs to find out exactly what the framework will do and what your code should do in return
  • ...someone asks you how all this magic you've built works and you can't answer
  • Read more... )

» Похоже, ошибка в VC++ 7.1
Под катом код, который не работает при включенных оптимизациях, предположительно по причине ошибки в компиляторе. Функция fn должна вывести в std::cout значения переданных параметров, но выводит мусор.

Read more... )

Если сделать функцию нешаблонной или нестатической, то все работает. В VC++ 8.0 также все работает. Если убрать boost::bind, то тоже все работает.
» Снова о D
FILE *f = fopen("myfile.txt","r");
scope(exit) fclose(f);

Жаль, что такая конструкция была изобретена лишь недавно... и только в языке D.
/me думает, что скоро очень многие плавненько C++ будут подменять на D.
» Гусары, молчать!
http://www.gamedev.ru/code/forum/?id=61182
» D как название языка программирования
Разве нельзя было придумать что-нибудь более оригинальное, чем D, чтобы при поиске в гугле на тебя не вываливалась тонна не относящегося к предмету поиска хлама?
Информацию по, скажем, Haskell, искать в разы приятнее :).
» КРИ '07
КРИ 2007 — отказать.
Ибо попало оно на пост строгий и Праздник Великий.
» Оборотни
Оборотней убить нельзя, так как нет серебряной пули. Но можно очень сильно покалечить :). Оставить процентов 10-20 хелса.
» Бинарная сериализация в Haskell
Судя по summary на странице http://www.haskell.org/haskellwiki/Hac_2007/GroupPhoto, основной проблемой haskell является бинарный ввод/вывод.
» Мышка
Четыре таких мышки я вчера утром поймал на кухне своей квартиры в период с 5:00 до 7:00. На видео под катом находится четвертая мышь, которую после создания видео я умертвил метким ударом своего зимнего ботинка в голову.

» Они сделали это! Теперь я верю в Mozilla!
Спустя 3 года (и 16 дней) наконец-то пофиксили самый надоедливый баг Gecko-based продуктов (Firefox, Thunderbird, etc).
https://bugzilla.mozilla.org/show_bug.cgi?id=220900. Шампанское, господа!
» Coding Conventions: Make Them Agile
http://www.testdriven.com/modules/mylinks/singlelink.php?cid=7&lid=1203
Top of Page Разработано LiveJournal.com