RattenKong 🦧🐀🦍️
я дальше суфдеревьев не лез, но нечеткий поиск там есть
RattenKong 🦧🐀🦍️
по крайней мере на двумерном массиве
Constantine
Нашел!!
а вы разбирались в деталях? почему не получается просто синтезировать сигнатуру operator() для user defined string literal, без этого макроса?
Александр
Constantine
я, вроде, привел
Constantine
в идеале я хочу, чтобы "width = %d, height = %d"_format синтезировало мне класс с operator()
Constantine
с правильным списком параметров
Constantine
собственно, этот оператор вернул бы std::string
Александр
Ага, осознал
Constantine
если я правильно понимаю, то принципиально user defined suffix literal может получить строку шаблонным параметром в char...
Constantine
а грамматика printf автоматная
Александр
constexpr auto operator "" _format(const char* str,
size_t)
{
return ...;
}
Пусть имеется такой код. Так как он не шаблонный, то тип фиксирован и ничего не прокатит.
Если юзать
template <char...> auto operator "" _format();
То по идее можно распарсить символы и сгенерировать соответствующий класс
Александр
круто получилось бы
Александр
https://www.blackhat.com/docs/eu-14/materials/eu-14-Andrivet-C-plus-plus11-Metaprogramming-Applied-To-software-Obfuscation-wp.pdf
немного в тему
Vladislav
Constantine
я вот и удивлен, что никто не сделал. Был уверен, что это велосипед
Constantine
Здравствуй, Слава! Давно не виделись :)
Vladislav
Constantine
очень нужная штука, да
это же не сарказм? народ реально давно мечтает и при этом никто не написал?
Vladislav
не сарказм, я был бы очень рад такой штуке
Vladislav
пока приходится костыли на макросах использовать, как в boost::metaprase
Крылатый
Плюсую.
Крылатый
Тоже хочу такую.
Constantine
я где-то месяц назад почти собрался писать, но прикинул, сколько у меня состояний в автомате и очень расстроился
Constantine
на всяких %I64d
Александр
взять тот же printpp и модифицировать
RattenKong 🦧🐀🦍️
о, какие тогда есть таски
Evgenii
а что еще?
RattenKong 🦧🐀🦍️
проблема в этиъ ваших юникодах
RattenKong 🦧🐀🦍️
хотя...
Evgenii
http://www.cs.hut.fi/~tarhio/papers/6060t.pdf
Tom
Тоже хочу такую.
если все согласны на что-то вроде
constexpr auto x = "..."_format;
то я думаю, что знаю, как это можно сделать без macros.
С моим теперешним проектом пересекается немножно, так что может быть...
RattenKong 🦧🐀🦍️
для трая сжать суффиксы до одного узла?
RattenKong 🦧🐀🦍️
а что там с существующим поиском
RattenKong 🦧🐀🦍️
если бм, то можно накинуть еще линию памяти и будет еще по плохому суффиксу матчить
Evgenii
ок, попробую найти время для этого
RattenKong 🦧🐀🦍️
просто не жирно ли будет по памяти?
RattenKong 🦧🐀🦍️
совсем быстрый бм - расширенное правило плохого символа + плохой суффикс
Evgenii
линк?
RattenKong 🦧🐀🦍️
а где его посмотреть
Evgenii
👍
Evgenii
а что там сейчас?
RattenKong 🦧🐀🦍️
ан нет, там есть таблица суффиксов
Aidar
Везде почти в 2к17 юзают тимсорт
RattenKong 🦧🐀🦍️
неужели миру не нужны линейные сортировки?
Aidar
Ну линейные сортировки не универсальны
Aidar
Там всегда нужно что-то большее чем просто компоратор
Evgenii
это: http://www.boost.org/doc/libs/1_64_0/libs/sort/doc/html/sort/sort_hpp/rationale/why_spreadsort.html ?
RattenKong 🦧🐀🦍️
брр, темплейты, сложно ориентироваться
Alexey
А есть у буста какой-нибудь баг\таск трекер(вроде такого https://phabricator.kde.org/)?
Было бы интересно что-нибудь поковырять на досуге.
Alignant
У меня 5.7 *-*
Constantine
ящетаю, это гениально. User-defined literal operator templates определены только для целочисленный и вещественных литералов
Александр
ааа, вот оно в чём дело
Александр
помнил я, что там был какой-то подвох
Александр
Есть вопрос.
Предположим, есть вариадик пак, сохранённый где-либо. Как сгенерить функцию, которая принимает в точности такие типы аргументов?
Vladislav
Mikhail
Всем привет
Mikhail
вопрос такой
Mikhail
Стд мэп прямо и хранится как красно чёрное дерево, или оно хранится как сбалансированное бинарное дерево и раскрашивается в красно чёрное в момент вставки и только ту область, в которую идёт вставка?
Vladislav
Evgenii
Evgenii
Mikhail
а потом рассматривать не все дерево, а только область с вершиной, где будет вставка нового элемента
Александр
как в прототип функции засунуть - не ясно
Vladislav
Mikhail
Vladislav
цвет - да, виртуальные листья - нет
Mikhail
Vladislav
nullptr вместо них
Mikhail
без виртуальных листьев
Evgenii
Mikhail
nullptr вместо них
ну переменная которая этот nullptr же есть. Или он один на всех?
Александр
tuple_size?
это через helper'а делается. Вон все анпакеры вариадиков через них. А тут прямо в аргументах функции. Я забил и решил сделать произвольные аргументы, а внутри уже чекать по is_convertible или is_same
Mikhail
а, понял