Пару лет назад на просторах интернетов я видел мнение, что если хочешь научиться грамотно писать на плюсах — изучай исходники Qt, мол, так писать и надо, образец что объектной ориентированности и архитектуры, что всяких «локальных» качеств вроде красивого и устойчивого плюсокода. А за последние дней десять мне ... more →
*c++
В общем, задачка из #tssnef решается как http://bpaste.net/show/oamB3cpwJQ36ZnEqU...
Я кончил и закурил.
// решал час потому, что забыл ::type после boost::mpl::end<>, отчего гцц сносило башню, а шланг вообще сегфолтился, стоило выставить -ftemplate-depth побольше.
Держи интересную задачку по плюсцам, псто.
Есть boost::variant<T1, T2, T3>, и есть template<typename T> class Foo {};. Нужно сделать новый вариант, содержащий, помимо прочих типов, инстансы Foo для типов из исходного варианта. Что-то вроде boost::variant<int, double, Blah, boost::recursive_wrapper<Foo<T1>>, ... more →
Нервно посмеиваюсь, глядя на шаблонные извращения, чтобы построить expression tree на буст.вариантах, чтобы все типобезопасно и инлайнилось, и чтобы минимальное количество кода дублировалось, вместо struct Equal; struct Greater; ... зато template<typename Op> struct Ord { bool operator()(const DataType_t& val) { ... more →
А кое-что и с тредами на C++11 выражается гораздо легче, чем на QThread/QtConcurrent. Вот, например, задача — на каждый тред создать свой экземпляр рабочего документа и дергать оттуда всякие методы. QtConcurrent не катит из-за стейтлесс-пула тредов, поэтому костыли лучше всего выражаются на std::thread: ... more →
А еще кути отсасывают у STL потому, что QList и компания не поддерживают move-only-типы, unique_ptr'ы просто так туда не положишь.
Ближайший аналог C++ (только, пожалуйста, посчитайте до 10 прежде чем минусовать каммент:) — PHP5. Можно писать очень аккуратно и чисто. А можно… ну ты в курсе.
А что, даже в C++11 нет примитива типа «выполнить вот этот функтор в отдельном треде и скормить результат вот этому функтору в вызывающем треде»? Я разочарован совсем :(
У меня лютый багет от кутешных подобий RTTI, в частности, от http://qt-project.org/doc/qt-4.8/qgraphi... и вещей вроде
template <class T> inline T qgraphicsitem_cast(QGraphicsItem *item)
{
return int(static_cast<T>(0)→Type) == int(QGraphicsItem::Type)
|| (item && int(static_cast<T>(0)→Type) ... more →
Вот я на самом деле программист так себе, пишу себе свой быдлокод на с++. Чаще всего делаю всякое формоклепательство на кутях, и иногда экспериментирую с shared_ptr. Но как и любой другой программист иногда смотрю на всякие другие языки типа паскаля, питона, ады, йавы. Пытаюсь понять их фишки там всякие, сильные с ... more →
Наткнулся в продакшен-коде на подсчет количества цифр в числе через принтф. Уж и не думал, что увижу такое.
Поймал себя на бугурте от отсутствия чего-то вроде decltype для сигнатур в хачкеле.
А еще нет ничего плохого в том, чтобы дергать сишные функции по мере необходимости. Например, вместо фанатичного обмазывания stringstream'ами можно просто взять и дернуть strtol и получить заодно длину обработанной строки как нефиг делать.
Пишу парсер хтмла, да.
Только что мне пытались доказать, что ссылки в плюсах обязательно проверяются на null в рантайме.
static_assert в шаблонной функции не показывает, чем она была инстанциирована. Плюсы опять соснули.
/home/d34df00d/Programming/leechcraft/src/plugins/lmp/plugins/graffiti/graffitit ab.cpp: In function ‘bool LeechCraft::LMP::Graffiti::{anonymous}::IsEmptyData(const ... more →
В ближайшее время на маке личкрафты будут без торрентов. ибо libtorrent там не собирается с C++11.
В очередной раз бугурчу от отсутствия поддержки в плюсах биекц^W ковариантных типов и необходимости писать костыли вроде таких:
QList<QObject*> Buddy::GetAllMessages () const
{
QList<QObject*> result;
for (auto msg : Messages_)
result << msg;
return result;
}
где Messages_ — QList<ConvIMMessage*>, а class ... more →
Грамматику initializer list'ов (и вообще инициализации) проектировал какой-то уебок. Нельзя писать
return Group_.isEmpty () ? QStringList () : { Group_ };
:'-(
Только начал дергать сишный код, а уже хочется блевать:
/home/d34df00d/Programming/leechcraft/src/plugins/azoth/plugins/velvetbird/proto manager.cpp:42:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Чят, подскажи btree-библиотеку под совместимой с анальной проприетарщиной лицензией.
Есть класс с мембером Items_. Пишу лямбду в одной из его функций:
auto tryAddUrl = [&visibleTags, this] (const QString& title, const QUrl& url) → void
{
const auto pos = std::find_if (Items_.begin (), Items_.end (), [&title] (decltype (Items_.at (0)) item) { return item.Title_ == title; });
...
};
получаю ... more →
А на даже не самом сложном темплейтном коде kdevelop таки просасывает → http://wstaw.org/m/2013/02/03/plasma-des...
Олсо, я вчера уберкотик и оптимизировал пожирание памяти с 4.6 до 3.1 гигов одними играми с выравниванием, избавлением от std::vector в угоду T[] и еще парой нехитрых трюков. ЧСХ дальнейшая оптимизация через выкидвание стоп-слов срезала еще лишь 800 метров.
Обмазался битовыми полями, и теперь у меня 4 бита на вес и 20 бит на количество повторений. ЗАТО ПАМЯТЬ ЭКОНОМЛЮ.
*c++ is used by:
0xd34df00d
0xd34df00d
Пахом
Pahom
Hirthwork McGillah
hirthwork
analizer
analizer
профессиональный говноед
ulidtko
werehuman
werehuman
0x2207
0x2207
няша
generatorglukoff
Mагог Магогович
magog
4DA
4da
dorfe
dorfe
Оранжевус Охуеннус
utros
gelraen
gelraen
Darth Bricktop
Like-all
kb
kb
jabber
jabber
16+
238328
Cthulhu
Cthulhu
Джордж Ричмонд
richmond
failman
failman
Crazy_Owl
Crazy_Owl
beardog
beardog
amd63
amd63
Monah Tuk
hatred
Nico-izo
Nico-izo
nobiiru
nobiiru
K900
K900
Лисий хвост
madInsane
SirAnthony
SirAnthony
Minoru
Minoru
chemikadze
chemikadze
anonymous_owl
anonymous_owl
Артём
astecenko
asmer
asmer
Maxim Kirenenko
part1zano
Ky6uk
Ky6uk
Michael Pogoda
MPogoda
taras
taras
18+ Запрещено для детей.
hedgehog
Andrew Motrenko
werdn
Артс
arts
Anatoly Kalin
m4n71k0r
Дэш
dash
folex
folex
Spiritual ecstasy
rapture
Enoh
Enoh
rogaboru
rogaboru
Thordendal
z56371410
mva
mva
Fess
zetoke
anoos
anoos
DOMr
DOMr
Bender Bending Rodríguez
DJm00n
Смерть Неизбежна
lHooFool
nexeuse
nexeuse
nstm0
nstm0
Илья Силаков-Волынский
iLeamare
Хотеть!
xotetb
Haomand
Haomand
RainerGomes
RainerGomes
lexszero
lexszero
proton
proton
Rejjin
Rejjin
eurekafag
eurekafag
0xd34df00d
Pahom
hirthwork
analizer
ulidtko
werehuman
0x2207
generatorglukoff
magog
4da
dorfe
utros
gelraen
Like-all
kb
jabber
238328
Cthulhu
richmond
failman
Crazy_Owl
beardog
amd63
hatred
Nico-izo
nobiiru
K900
madInsane
SirAnthony
Minoru
chemikadze
anonymous_owl
astecenko
asmer
part1zano
Ky6uk
MPogoda
taras
hedgehog
werdn
arts
m4n71k0r
dash
folex
rapture
Enoh
rogaboru
z56371410
mva
zetoke
anoos
DOMr
DJm00n
lHooFool
nexeuse
nstm0
iLeamare
xotetb
Haomand
RainerGomes
lexszero
proton
Rejjin
eurekafag