- @0xd34df00d: *c++Гм, интересно, а насколько гуманно в качестве теста на знание плюсцов спрашивать у человека, чтобы он почитал сорсы личкрафта и на базе этого сказал, как там происходит взаимодействие плагинов, например, с какими крайними случаями и так далее.3 months ago; 12 replies
- @0xd34df00d: *java *c++ *говноСцуко, scilab, написанный на жабке, молча упал при попытке применить шрифт к редактору. Да, жабка не тормозит, не падает, и в менеджед-языках нормальные бектрейсы вместо этих наших плюсовых сегфолтов, ога-ога.3 months ago; 23 replies
- @0xd34df00d: *programming *c++На самом деле, излучение сигнала с объектом, владение которым переходит обработчику сигнала — это, с какой-то точки зрения, какое-то феерическое нарушение инкапсуляции и абстракции. Вот шаред-поинтер с копированием поинтера в каждый хендлер — это уже лучше.3 months ago; 24 replies
- @lexszero: *c++ *говно *ugnichУ меня в детстве была книжка "сипласплас для чайников", там всю книгу писали программу про пиццу. Начиная с 10-строчного хелловорлда, заканчивая говнищем на три десятка страниц плюсовых листингов. Функционал обоих версий примерно одинаков, разумеется.4 months ago; 10 replies
- @0xd34df00d: *c++ *говноПочему-то вместо того, чтобы просто передать параметр в конструктор, хочется нагородить пиздецомы из темплейтов. Жениться мне надобно, барин.
- @0xd34df00d: *c++ *физтехОлсо, сегодня в вузике какой-то левый чувак подошел и попросил дать консультацию по бусту. Вот она слава, вот она популярность.
- @0xd34df00d: *c++ *говно2011 год, лямбды, фигамбды... А перегрузить виртуальный метод простой лямбдой, не вхуяривая целый класс, нельзя. Пичаль.4 months ago
- @0xd34df00d: *programming *c++Жуйц, вот вообще насколько Ъ делать вот так?
Есть метод-слот, который выполняет некоторые действия над объектом. Метод может быть вызван, собственно, как слот, и тогда объект доступен внутри сигнала как sender(), а может быть вызван напрямую другим объектом. Тогда мы его описываем как
void method (QObject *obj = 0)
{
QObject *realObj = obj ? obj : sender ();
...
}
Говно, костыли и быдлокод или разумное уменьшение количества писанины? Ведь альтернатива — вынести тело метода в отдельный метод, типа MethodImpl, и дергать его, если надо. Но лень же лишний метод на это создавать.4 months ago; 10 replies - @0xd34df00d: *c++ *говноType inference engine в C++ такое говно, что чтобы забиндить QString::replace (у которого с десяток разных оверлоадов), первым параметром boost::bind'у нужно передать что-то типа
static_cast<QString& (QString::*) (const QString&, const QString&, Qt::CaseSensitivity)> (&QString::replace)
вместо простого и няшного
&QString::replace
хотя все остальные типы в bind'е явно указаны и выводятся.- @L29Ah: Здесь не хватает рекламы 0x и хаскеля.
- @0xd34df00d: *programming *opensource *c++Господа, а вот такой вопрос.
Куда лучше приложиться с моим набором скиллов, что пойти пилить? Вы вроде и так про меня все знаете, но на всякий случай — вроде неплохо шарю в C++/Boost/Qt, имею опыт проектирования сравнительно больших систем, имею некоторый опыт написания хацкель-кода, ну и еще что-то по мелочи.
Дискасс.4 months ago; 69 replies - @0xd34df00d: *programming *c++Пожалуй, одно из самых непередаваемых чувств — когда находишь баг, который сидел в исходниках испокон веков, и с которым вообще непонятно, как работала программа. Она не могла работать. Никак.4 months ago; 17 replies
- @Zombieff: Шрёдинбаг? А старые сборки перестали работать?
- @0xd34df00d: *c++ */b/Я иногда всерьез жалею, что boost::function (и прочий буст) нематериален. Так бы обмазался и подрочил.4 months ago
- @0xd34df00d: *c++Вот бы можно было объявлять переменную как не-const, а потом, после некоторого блока, навешивать const. Удобно — создал какую-нибудь там std::map, заполнил в цикле, навеcил const и точно знаешь, что дальше она не поменяется. Можно наслаждаться тайпчекингом и грабить корованы.4 months ago; 45 replies
- @0xd34df00d: *c++Вот такой вот C++0x: paste.pocoo.org
Не самый идеальный код, лень подрихтовывать, но, в общем, дискасс.4 months ago; 17 replies - @0xd34df00d: *c++ *programming *говноЯ тут в очередной раз выебываюсь, делая лабу по параллельному программированию, и на этот раз решил немножко поиграться с C++0x.
В общем, внезапно decltype не эквиваленто семантически прямой подстановке имени типа, и не формирует qualified-id, так что фигня типа paste.pocoo.org приводит к такой ругани компилятора:
>% g++ -std=c++0x -pthread -o main main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:42: ошибка: parse error in template argument list
main.cpp:42: ошибка: нет способа для преобразования функции ‘Worker’ к типу ‘void* ()(void)’
main.cpp:16: ошибка: candidates are: template<class T> void* Worker(void*)
Плюсы такие плюсы, вербозность из них каленым железом и ссаными тряпками не вытрясешь. За это и люблю :3 - @0xd34df00d: *c++ *говноПлюсцы таки феерический язык по возможности НЕЗАМЕТНО стрелять себе в ногу. Сейчас в личкрафтоконфочке ищем, где же ссылка на кустринг становится невалидной, среди всех взаимных вызовов-то, из-за удаления исходного объекта.
А вообще это делаем меня думать забить на передачу объектов по ссылкам, если они implicitly shared, и надеяться на RVO/NRVO и подобные.
Да и без шаред, для любых объектов. - @0xd34df00d: *c++ *programmingНенавижу первотег. Много tedious and boilerplate code.
Но только почти все остальные языки еще хуже. Все языки, на которых можно было бы, теоретически, писать вещи типа личкрафта, хуже.4 months ago; 15 replies - @0xd34df00d: *programming *c++ *говноНу вон, gcc 4.6 уже вышел, а я все как лох сижу на 4.4. DO WANT 4.6, DO WANT C++0x.5 months ago; 13 replies