Aidar
Только чо делать надо тоже как-то передать
Aidar
А хотя можно и в шаблон
Aidar
if(a==1)do<1>();
Aidar
Только в шаблонах
🐙 Antony
Я как-то так в итоге и делал. Но нативный свитч оптимизируется лучше
Нужен пример, чтобы запилить багрепорт на это Только желательно очень маленький пример
Александр
как-то вот так (псевдокод): template <class Enum, class... T> void do_something(Enum val, std::integer_sequence<T...>) { constexpr auto table[] = { +[]() { std::cout << typeid(T).name(); }, ... }; table[static_cast<unsgined>(val)] ();
тут проблема в том, что константы должны идти последовательно от нуля. в общем случае надо делать именно map
Александр
ну или if'ами, конечно
Anatoly
У нас нет для него сахара, но есть возможность делать то же самое: using Person = std::variant<Engineer, Scientist, Height, Weight, Info>; struct inspect { void operator()(const Engineer& e) const { std::cout << "Engineer"; } void operator()(const Scientist& e) const { std::cout << "Scientist"; } template <class T> void operator()(const T& e) const { std::cout << "Sonmething else"; } }; int main() { Person p{Engineer}; std::visit(inspect{}, p); }
мне понравился прием c overloaded, позволяющий сгенерить визитера на лету: template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; }; template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>; int main() { std::variant<int, double, std::string> v = {std::string{"10"}}; std::visit(overloaded { [](auto arg) { std::cout << arg << ' '; }, [](double arg) { std::cout << std::fixed << arg << ' '; }, [](const std::string& arg) { std::cout << "\"" << arg << "\"" << ' '; }, }, v); }
Vasily
Ребят, как в vs 2017 поменять кодировку на utf 8?
Vasily
Текст абракадабру выводит, русификация не помогает, на стаке непонятные методы показаны
Aidar
Опять
Aidar
Блин я так и не написал фак сори поцаны
Aidar
Пусть напишет ктонить шарящий пож
Anatoly
Кинь ему ссылку на обсуждение
Aidar
Именно эту штуку
🐙 Antony
Сейчас, сначала я вот с этим разберусь https://godbolt.org/g/o6CVQU
🦥Alex Fails
Кажется я пару недель назад обещал пост, о C++20. Вот он: https://habrahabr.ru/company/yandex/blog/336264/
да, спасибо большое, очень помог с ренджами. но все же интересно, ими можно будет делать так: std::vector vec {12,3,4,5,6,6725235}; ranges::sort(vec);
🦥Alex Fails
надо б зарегаться на cppreference и дописать их вики
Aidar
надо б зарегаться на cppreference и дописать их вики
Допиши туда как кириллицу в винде выводить
🦥Alex Fails
Допиши туда как кириллицу в винде выводить
я это сначала напишу к нам в канал))
🦥Alex Fails
https://t.me/ProCxxNews/20
🦥Alex Fails
еее, збс
🦥Alex Fails
https://github.com/android-ndk/ndk/issues/442
Вот поэтому я и боюсь юзать треды и пр. на планшете XD
🦥Alex Fails
их стдлиба - полный пиздец какой-то. Хорошо, что хоть to_string починили (спустя 5 лет)
🦥Alex Fails
с r14 вроде б
🦥Alex Fails
в термухе недавно вот как раз обновили
🦥Alex Fails
блин, как меня достали эти строки, в принципе... @antoshkka , можешь помочь, плз, с case-insensitive comparation UTF-8-строк? В докладе видел интересную тему через переопределение char_traits, но оно же не будет пахать на utf-8-строчках(
🦥Alex Fails
вот вообще. Почему я бота с Си на плюсы перенес, как только запилил его как proof-of-concept? Строки. И необходимость чистить память явно
Aidar
чоза печать?
Aidar
кажется надо матовую
Aidar
ок
🦥Alex Fails
с праздником))
🦥Alex Fails
не, ну кто мешает тебе, к примеру, по чару ходить. но надо уметь определять, целый ли это символ, или нет (это просто).
🦥Alex Fails
ща, наверное, сам попробую чар_трейтс сделать
Andrei
С кодпоинтами.
🦥Alex Fails
/cppref char_traits
FailsBot
http://en.cppreference.com/w/cpp/string/char_traits
🦥Alex Fails
Не будет. С утф8 - попа :(
я, кстать, видел некое предложение для std::u8string
Александр
я, кстать, видел некое предложение для std::u8string
так сейчас std::string работает с utf8
🦥Alex Fails
http://www.open-std.org/JTC1/SC22/wg21/docs/papers/2016/p0482r0.html
🦥Alex Fails
не совсем то
Square
не совсем то
а ты смотрел чо на гх есть? вон куча разных вариантов заимплеменчена
Square
не совсем то
смари какая милота: https://github.com/Gumichan01/utf8_string/blob/master/src/utf8_string.cpp
Anatoly
смари какая милота: https://github.com/Gumichan01/utf8_string/blob/master/src/utf8_string.cpp
на беглый взгляд, оверхеда много в коде, нет мув семантики, создание std::string из const char-a на каждом шагу
Square
на беглый взгляд, оверхеда много в коде, нет мув семантики, создание std::string из const char-a на каждом шагу
это ж опенсорц. сопли потдянуть, напильником шлифануть и вот велик нормальный
Anonymous
)
Square
давайте контрибьютить
у тебя тредпул с оверхедом!
Square
надо concurrentqueue туда
Anonymous
ну-ка, расскажи
Anonymous
а, ты про блокировку по доступу к очереди?
Anonymous
ну это сложно, не по simplicity
Square
в локе половину времени :(
Square
но правда я неправильно его приготовил отчасти
Anonymous
гм, интересно, подумаю над этим
Square
я тут на больничном херней всякой занимаюсь
Square
захотелось мэпредьюс из говна и палок
Anonymous
не херней, а помогаешь какому-то анону самосовершенствоваться
Square
гм, интересно, подумаю над этим
warmup time: 2.70961 single thread time: 2.70877 concurrent time: 0.519542
Square
мне репу стыдно сюда кидать, могу в лс
Anonymous
го
Square
правда пришлось пильнуть немного
Square
правда пришлось пильнуть немного
надо еще отделить сам пул от мэппинга
Square
это не про 95% населения. я вообще любитель после первых результатов переключиться на что нить новое :(
🦥Alex Fails
а вариант работы с wstring не рассматривается по каким причинам?
По тем, что строчки приходят в UTF-8 в телеграм апи
🦥Alex Fails
думал над этим, чтоб взять в codecvt конвертер
🦥Alex Fails
Мне вот интересно, какие проблемы запилить сейчас в стандарт utf-8?
Anatoly
А что пришло на смену wstring_convert в С++ 17?
🦥Alex Fails
как я понял, Вижал студия просто не умеет из-за фундаментальных проблем винды. Поэтому у них локаль сломана в утф-8. Но другие
🦥Alex Fails
А что пришло на смену wstring_convert в С++ 17?
в мотивации того пропосала было написано что-то типа "ОЙ, мы не смогли это нормально сделать, давайте выкинем это, а юзеры пусть либы тянут"