Рубрика: c++

Загадка enum-а в C++

Ещё детстве я недоумевал, почему enum в C++ не считается name­­space-ом. Вот в этом примере мы явно засорили публичное пространство непрошенными глобальными перемеными. enum Col­or { red, green, blue }; Col­or r = red; switch® { case red : std::cout » “red\n”; break; case green: std::cout » “green\n”; break; case blue : std::cout » “blue\n”;…

Прочитать статью целиком

Как C и Perl захватили планету

Почему C и Perl стали стандартами в своих областях и до сих пор на коне? Дело, конечно, не только в синтаксисе и парадигме. И даже не в простоте. C, конечно, прост, это по-человечески записанный кроссплатформенный ассемблер. Но Perl совсем не прост, это многослойная обёртка вокруг парсера регулярных выражений. Весь секрет — в нечестных преимуществах. Компиляторы…

Прочитать статью целиком

Тайна неуязвимости Человека с чемоданчиком

Раскрыт секрет неуязвимости Человека с чемоданчиком (он же G-Man) из первых версий Half-Life. Если заглянуть в исходники, становится ясно, почему в него высаживали целую обойму, а он всё равно живой: SetIm­pactEn­er­gyScale( 0.0f ); // no physics dam­age on the gman

Д. Босуэлл, Т. Фаучер — Читаемый код, или программирование как искусство

Небольшая книжка, в которой много полезных мелочей. Например, более точные варианты названий для типичных функций: send — deliv­er; dis­patch; announce; dis­trib­ute; route find — search; extract; locate;recover start — launch; cre­ate; begin; open make — cre­ate; set­up; build; gen­er­ate; com­pose; new Именованные интераторы для циклов (ui лучше, чем просто i). Дополнительные постфиксы — size_mb, html_utf…

Прочитать статью целиком

QT: error: cannot find -lQtMultimedia

The QtMul­ti­me­dia library is not avail­able in Ubun­tu. If you’re try­ing to cre­ate in Qt a project that uses it, it will fail with fol­low­ing error: error: can­not find -lQt­Mul­ti­me­dia To fix it, you have to install qtmo­bil­i­ty and use mul­ti­me­dia items from this lib. Install qtmo­­bil­i­­ty-dev and lib­de­clar­a­­tive-mul­ti­me­­dia. Then remove QT += mul­ti­me­dia from…

Прочитать статью целиком

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

LINK : fatal error LNK1123: fail­ure dur­ing con­ver­sion to COFF: file invalid or cor­rupt It’s a com­mon error when you com­pile C++-projects with Visu­al Stu­dio 2010. Ift hap­pens when 2 ver­sion of Visu­al Stu­dio are installed on same PC (like 2010 and 2012) and cause con­flict between two ver­sions of cvtres.exe. To fix it, go…

Прочитать статью целиком

C++: Счастливый билет с длинной арифметикой

Счастливый трамвайный билет — это такой, у которого сумма первых трёх цифр номера равна сумме трёх последних. При встрече его полагается съесть. Сколько таких билетов всего? Какова вероятность встретить счастливый? Алгоритм для этих вычислений в Википедии настолько ужасен, что народ с Хабра довольно быстро породил в комментариях огромное количество вариантов на C++, Perl и… SQL.…

Прочитать статью целиком

C++: Вопросы на собеседовании

Вопросы на собеседовании по С++” — один из самых популярных запросов, по которым находят этот блог. А значит, настало время расширить этот постинг. Т.к. такие списки периодически пропадают из Сети, я буду делать свой — с приложенными ответами. Итак, понеслось: Google Google — 2 Google — 3 Ama­zon C / C++ Hard­ware Archi­tec­ture Российский game-devel­op­­ment…

Прочитать статью целиком