*c++

0xd34df00d 13:16

Пару лет назад на просторах интернетов я видел мнение, что если хочешь научиться грамотно писать на плюсах — изучай исходники Qt, мол, так писать и надо, образец что объектной ориентированности и архитектуры, что всяких «локальных» качеств вроде красивого и устойчивого плюсокода. А за последние дней десять мне ... more →

0xd34df00d 25.03.2013 21:27

В общем, задачка из #tssnef решается как http://bpaste.net/show/oamB3cpwJQ36ZnEqU...
Я кончил и закурил.

// решал час потому, что забыл ::type после boost::mpl::end<>, отчего гцц сносило башню, а шланг вообще сегфолтился, стоило выставить -ftemplate-depth побольше.

0xd34df00d 25.03.2013 20:29

Держи интересную задачку по плюсцам, псто.
Есть boost::variant<T1, T2, T3>, и есть template<typename T> class Foo {};. Нужно сделать новый вариант, содержащий, помимо прочих типов, инстансы Foo для типов из исходного варианта. Что-то вроде boost::variant<int, double, Blah, boost::recursive_wrapper<Foo<T1>>, ... more →

c++
0xd34df00d 25.03.2013 19:26

Нервно посмеиваюсь, глядя на шаблонные извращения, чтобы построить expression tree на буст.вариантах, чтобы все типобезопасно и инлайнилось, и чтобы минимальное количество кода дублировалось, вместо struct Equal; struct Greater; ... зато template<typename Op> struct Ord { bool operator()(const DataType_t& val) { ... more →

0xd34df00d 25.03.2013 13:01

А кое-что и с тредами на C++11 выражается гораздо легче, чем на QThread/QtConcurrent. Вот, например, задача — на каждый тред создать свой экземпляр рабочего документа и дергать оттуда всякие методы. QtConcurrent не катит из-за стейтлесс-пула тредов, поэтому костыли лучше всего выражаются на std::thread: ... more →

0xd34df00d 25.03.2013 11:58

А еще кути отсасывают у STL потому, что QList и компания не поддерживают move-only-типы, unique_ptr'ы просто так туда не положишь.

0xd34df00d 25.03.2013 10:48

Ближайший аналог C++ (только, пожалуйста, посчитайте до 10 прежде чем минусовать каммент:) — PHP5. Можно писать очень аккуратно и чисто. А можно… ну ты в курсе.

0xd34df00d 21.03.2013 06:32

А что, даже в C++11 нет примитива типа «выполнить вот этот функтор в отдельном треде и скормить результат вот этому функтору в вызывающем треде»? Я разочарован совсем :(

0xd34df00d 20.03.2013 09:12

У меня лютый багет от кутешных подобий 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 →

0xd34df00d 19.03.2013 16:39

Вот я на самом деле программист так себе, пишу себе свой быдлокод на с++. Чаще всего делаю всякое формоклепательство на кутях, и иногда экспериментирую с shared_ptr. Но как и любой другой программист иногда смотрю на всякие другие языки типа паскаля, питона, ады, йавы. Пытаюсь понять их фишки там всякие, сильные с ... more →

0xd34df00d 19.03.2013 13:19

Наткнулся в продакшен-коде на подсчет количества цифр в числе через принтф. Уж и не думал, что увижу такое.

0xd34df00d 10.03.2013 13:44

Поймал себя на бугурте от отсутствия чего-то вроде decltype для сигнатур в хачкеле.

0xd34df00d 06.03.2013 18:03

А еще нет ничего плохого в том, чтобы дергать сишные функции по мере необходимости. Например, вместо фанатичного обмазывания stringstream'ами можно просто взять и дернуть strtol и получить заодно длину обработанной строки как нефиг делать.
Пишу парсер хтмла, да.

0xd34df00d 06.03.2013 17:09

API std::string'а после QString кажется лютым днищем. Блюю.

0xd34df00d 01.03.2013 12:30

Только что мне пытались доказать, что ссылки в плюсах обязательно проверяются на null в рантайме.

0xd34df00d 28.02.2013 10:35

static_assert в шаблонной функции не показывает, чем она была инстанциирована. Плюсы опять соснули.

/home/d34df00d/Programming/leechcraft/src/plugins/lmp/plugins/graffiti/graffitit ab.cpp: In function ‘bool LeechCraft::LMP::Graffiti::{anonymous}::IsEmptyData(const ... more →

0xd34df00d 22.02.2013 10:23

В ближайшее время на маке личкрафты будут без торрентов. ибо libtorrent там не собирается с C++11.

0xd34df00d 20.02.2013 06:07

В очередной раз бугурчу от отсутствия поддержки в плюсах биекц^W ковариантных типов и необходимости писать костыли вроде таких:
QList<QObject*> Buddy::GetAllMessages () const
{
QList<QObject*> result;
for (auto msg : Messages_)
result << msg;
return result;
}
где Messages_ — QList<ConvIMMessage*>, а class ... more →

0xd34df00d 19.02.2013 14:24

Грамматику initializer list'ов (и вообще инициализации) проектировал какой-то уебок. Нельзя писать

return Group_.isEmpty () ? QStringList () : { Group_ };

:'-(

0xd34df00d 15.02.2013 13:42

Только начал дергать сишный код, а уже хочется блевать:
/home/d34df00d/Programming/leechcraft/src/plugins/azoth/plugins/velvetbird/proto manager.cpp:42:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

0xd34df00d 04.02.2013 17:38

Чят, подскажи btree-библиотеку под совместимой с анальной проприетарщиной лицензией.

c++
0xd34df00d 03.02.2013 21:08

Есть класс с мембером 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 →

0xd34df00d 03.02.2013 20:03

А на даже не самом сложном темплейтном коде kdevelop таки просасывает → http://wstaw.org/m/2013/02/03/plasma-des...

0xd34df00d 31.01.2013 10:55

Олсо, я вчера уберкотик и оптимизировал пожирание памяти с 4.6 до 3.1 гигов одними играми с выравниванием, избавлением от std::vector в угоду T[] и еще парой нехитрых трюков. ЧСХ дальнейшая оптимизация через выкидвание стоп-слов срезала еще лишь 800 метров.

0xd34df00d 31.01.2013 00:09

Обмазался битовыми полями, и теперь у меня 4 бита на вес и 20 бит на количество повторений. ЗАТО ПАМЯТЬ ЭКОНОМЛЮ.

Do you really want to delete ?

*c++ is used by:

0xd34df00d

0xd34df00d

Пахом

Pahom

Hirthwork McGillah

hirthwork

analizer

analizer

werehuman

werehuman

0x2207

0x2207

няша

generatorglukoff

4DA

4da

dorfe

dorfe

gelraen

gelraen

Darth Bricktop

Like-all

Rayslava

kb

kb

jabber

jabber

16+

238328

Cthulhu

Cthulhu

failman

failman

Crazy_Owl

Crazy_Owl

beardog

beardog

SirAnthony

SirAnthony

amd63

amd63

Monah Tuk

hatred

Nico-izo

Nico-izo

nobiiru

nobiiru

K900

K900

anonymous_owl

anonymous_owl

Артём

astecenko

asmer

asmer

Minoru

Minoru

chemikadze

chemikadze

Артс

arts

Anatoly Kalin

m4n71k0r

Дэш

dash

folex

folex

Maxim Kirenenko

part1zano

Ky6uk

Ky6uk

Michael Pogoda

MPogoda

taras

taras

nstm0

nstm0

Хотеть!

xotetb

Haomand

Haomand

RainerGomes

RainerGomes

lexszero

lexszero

proton

proton

Rejjin

Rejjin

eurekafag

eurekafag

Enoh

Enoh

rogaboru

rogaboru

kuroneko

Thordendal

z56371410

mva

mva

Fess

zetoke

anoos

anoos

DOMr

DOMr

sayafag

nexeuse

nexeuse