Aidar
Короче у тапла есть get<mytype>(tpl)
Aidar
Точно
Vitaliy
Ага, посмотрел, но только с 14 стандарта
Aidar
Мда
Dmitry
Мда
Епрст... вариант, конечно же. Не тупл. Переработал сегодня.
Михаил
Ссылку, и закиньте идею на stdcpp.ru А то иначе я забываю :( (про inline constexpr nothrow вот только сейчас вспомнил)
Идея отправлена на stdcpp. И, как обещал, ссылка на видео: https://www.youtube.com/watch?v=YA-nB2wjVcI
Aidar
Эни это ваще штука с динамическими алокациями
Constantine
Идея отправлена на stdcpp. И, как обещал, ссылка на видео: https://www.youtube.com/watch?v=YA-nB2wjVcI
Честно говоря я могу назвать миллиард более полезных вещей, которых не хватает в STL
Constantine
И которые не реализуются за секунду самостоятельно
Constantine
Вот только сегодня бомбил, что нет std::find с предикатом
Alexander "SonnySlave"
желательно в виде предложений на stdcpp.ru
Vitaliy
@AsGreyWolf я кажется понял твою идею. Ты предлагаешь не наследовать методы, а использовать шаблонный метод, в котором я буду указывать тип доставаемого значения. Такая обертка над кортежем получается. Если не сам кортеж)
Constantine
Find_if?
требует замыкания аргумента
Constantine
ну так называй!
потоковый mex finder, например
Aidar
Но наследоваться от рандомной фигни точно плохо
Aidar
Как тебе наследование от Инта?
Constantine
mex finder?
mex, это по определению наименьшее число, которое не присутствует в наборе
Constantine
minimal excluded
Alexander "SonnySlave"
а, понял. не знал такого определения
Alexander "SonnySlave"
а где такое полезно?
Constantine
в автоназначениях идентификаторов
Alexander "SonnySlave"
а, логично
Dmitry
Скорее vector<any>
Может всё таки pair<err_code_type, variant<err_class1, err_class2, ...>> возвращать тогда в качестве ошибки?
Vitaliy
Как тебе наследование от Инта?
Да, нужно обертки писать. Но они в любом случае нужны. Потому что int не только кодом ошибки может быть
Constantine
а, логично
или, например, suf-array / BWT
Constantine
и вообще все строковые структуры данных, например, специализация set<string>
Aidar
Где-то я такое видел
Vitaliy
Да, нужно обертки писать. Но они в любом случае нужны. Потому что int не только кодом ошибки может быть
Короче, надо будет написать оба варианта. С наследованием и без. Поюзать и понять, что удобней.
Constantine
У меня тоже много - я начал с малого :-)
Просто непонятно, зачем это в STL
Михаил
Просто непонятно, зачем это в STL
А зачем в STL for_each тогда? Можно и так циклы писать...
Constantine
А зачем в STL for_each тогда? Можно и так циклы писать...
Напишите лучше чтобы std::find с предикатом добавили
Constantine
А то все разумные реализации будут использовать std::_Find_with_pred
Михаил
Ну, не знаю, у меня find_if отвращения не вызывает )
Михаил
Меня больше взбесил vector<bool>, bitset<N> и даже boost::dynamic_bitset
Михаил
С ними хотели как лучше, а получилось как всегда
Constantine
bitset клевая штука
Constantine
пользуюсь
Constantine
последний раз - меньше недели назад
Михаил
Не ну для некоторых вещей конечно бесспорно, но бывают ситуации
Constantine
не знаю ситуаций, я просто написал (a ^ b).count() и у меня все работало)
Constantine
Ну, не знаю, у меня find_if отвращения не вызывает )
find_if требует замыкания параметра для find
Михаил
Отлично, а теперь нужно передать 5 и 6 слово из bitset во внешнюю функцию.
Constantine
это совершенно точно не то, для чего нужен bitset
Михаил
ОК, что тогда?
Constantine
bitset нужен чтобы С++боги на олимпиадках могли насмехаться над Java-неудачниками ;)
Михаил
😀
Constantine
а wide_int соответственно чтобы прекратить обратные насмешки
Михаил
Вот кстати было бы круто иметь в STL (ну или отдельно) либу для работы со всякими интринсиками и SIMD
Constantine
а это не задача компилятора?
Dmitry
Хотя бы builtin ctz...
Constantine
что ему вообще непонятно?
Михаил
На них можно было бы легко реализовать динамический битовый вектор с итераторами
Михаил
А ля vector только для битов и алгоритмы к ним стандартные, copy, rotate, transform, и прочие
Михаил
Там и динамический wide_int не так уж и далек.
Dmitry
И clz, задолбался их constexpr'ить с циклами де Брейна.
Constantine
динамический wide_int не нужен
Михаил
Ну или еще что-нибудь, не принципиально, придумать можно много чего
Михаил
Такое предложение уже есть на stdcpp (про SIMD и intrinsic). Так что не все потеряно
Alexander "SonnySlave"
И над ним работают
Vladislav
bitset нужен чтобы С++боги на олимпиадках могли насмехаться над Java-неудачниками ;)
это если ширина фиксирована в compile-time. А иначе насмехания наоборот выходят)
Vladislav
прям в compile-time?
Constantine
ага
Constantine
N <= 1000
Constantine
bitset<1024>
Constantine
:)
Vladislav
не, иногда бывает нужно динамически, чтобы асимптотику соблюсти
Constantine
у меня на такой случай был if