@0xd34df00d

Тег c++ в блоге 0xd34df00d

0xd34df00d

О, в chrono будут календари и все такое.

#mbdzy 16
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Оказалось, что uniform initialization через {} нихуя не униформ, поэтому обсуждают использование () для {}-инициализации агрегатов.

Top kek.

Зато починят make_shared для агрегатов, например.

#mdgak 2
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Рефлексия получается заебатая, почти единогласно приняли. Надеюсь, library group до C++20 успеет.

#mdggh
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Обосрал концепцию attendant entities в модулях.

#mizyr
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

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

Потому что ADL так работает.

// заголовок желтоват, но для поинта сойдёт

#mizrm
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

О, ещё один чувак, который ставит пробелы перед скобками при вызове функций. Я не один такой!

#mizmw 20
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

О, наконец дошло до обсужденичя монад в контексте синтаксиса для корутин.

#mbufi
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Подискутировал со Страуструпом за экзепшоны против монадической обработки ошибок.

#mbumy 6
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

C++11 и C++14 не существует.

#mbuih 4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Потусил в Evolution Working Group, пообсуждали, как нам всем дальше развивать язык, чтобы можно было более безопасно ломать обратную совместимость (ну там, http://www.open-std.org/jtc...ers/2017/p0684r1.pdf , все дела). Поучаствовал в дискуссии за разные стандарты компиляции и флагов для разных модулей. Походу, надо писать пропозал на тему.

#mbusx 2
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Торгану фоточкой, кстати.

Фоточка по случаю полета в Jacksonville на встречу рабочей группы комитета по стандартизации C++. Буду делать из плюсов х-ль.

#mdekk 17
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Блядь, как же я люблю свой ORM. Статические проверки и это всё:

#mdoeq
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Как же мне бомбит оттого, что алгоритмы в STL используют передаваемые функторы как pred(*it) вместо std::invoke(pred, *it). Вместо std::any_of(foos.begin(), foos.end(), &Foo::isEmpty) приходится писать std::any_of(foos.begin(), foos.end(), [] (const auto& foo) { return foo.isEmpty(); })

#miszt
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

std::function is the new dependency injection framework.

#micis
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Перешёл на oral для не совсем тривиальной БД: https://github.com/0xd34df0...a02ebd65a?diff=split

Збс кода уменьшилось!

#owknl 2
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d
/home/d34df00d/Programming/leechcraft/src/util/db/oral.h:867:8: error: overloaded 'operator=' must be a non-static member function
                auto operator= (const L& left, const R& right)
                     ^

Ну и схуя?

#owkmy
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Шаблоны недостаточно ленивы и недостаточно крякают как утки. Нельзя сделать

template<auto... Ptrs, size_t... Idxs>
auto MakeIndexedQueryHandler (detail::MemberPtrs<Ptrs...>, std::index_sequence<Idxs...>)
{
    return [] (const QSqlQuery& q)
    {
        if constexpr (sizeof... (Ptrs) == 1)
            return FromVariant<MemberPtrType_t<Ptrs>> {} (q.value (Idxs))...;
        else
            return std::tuple { FromVariant<MemberPtrType_t<Ptrs>> {} (q.value (Idxs))... };
    };
}

так как в первой ветви по уму это разворачивается в обычный return, но компилятор почему-то считает, что там неправильный стейтмент.

Приходится делать две перегрузки, как в старые добрые времена.

#oknbq
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Удалил 200 строк из своего ORM-фреймворка. ответственных за селекты по foreign key'ам: https://github.com/0xd34df0...964f0c12110d3c8?ts=4

Теперь обычные селекты поддерживают выражения, затрагивающие несколько таблиц, вроде

students->Select (field<&Student::ID_> == field<&Student2Lecturer::StudentID_> &&
        field<&Student2Lecturer::LecturerID_> == field<&Lecturer::ID_> &&
        field<&Lecturer::Salary_> > 200)

поэтому в специализированных селекторах больше не было нужды.

Это прямо ментальный оргазм какой-то, когда то, что раньше являлось стрёмным частным случаем, теперь покрывается няшным общим кодом!

#ozjdy
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Впервые вижу, чтобы соснули и gcc, и clang: https://stackoverflow.com/q...on-guides-priorities

#ozjwh
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
0xd34df00d

Пишешь expression templates для ORM-фреймворка
@
Пишешь операторы сравнения в духе


@
Доходишь до operator||
@
Огребаешь

Не, ну понятно, почему, но блядь, пиздец.

#owicx 3
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.