Tengiz
http://www.stdthread.co.uk/order.html
Спасибо за ссылку, посмотрю
Крылатый
Тупой вопрос: что нонче в плюсах есть годное для RPC?
Крылатый
А оно быстрое?
Крылатый
Нужно вот прям ваще RED GOZ FASTA
Vlad
ну как сказать
Vlad
Нужно вот прям ваще RED GOZ FASTA
я не знаю, какие критерии RED GOZ FASTA
Deleted Account
gRPC ?
ееееее .proto file.
Крылатый
Есть msgpack http://msgpack.org/
Крылатый
Но я хз.
Крылатый
Правда, он в neo vim используется...
Vlad
Есть msgpack http://msgpack.org/
я не знаю подробно, но там есть RPC?
Крылатый
я не знаю подробно, но там есть RPC?
Ну там для обмена сообщениями, но так-то можно вляпать rpc
🐙 Antony
Метапрограммирование должно быть без императивности.
Два дня назад у меня коллега с работы возмущался вырвиглазным метапрограмнвм адищем, необходимым для применения функции к каждому элементу произвольного кортежа: template <class Tuple, class Func, std::size_t... I> void stringize_cpp11_impl(const Tuple& t, const Func& f, std::index_sequence<I...>) { // Oops. Requires C++17 fold expressions feature. // (f(std::get<I>(t)), ...); int tmp[] = { 0, (f(std::get<I>(t)), 0)... }; (void)tmp; // Suppressing unused variable warnings. } template <class Tuple> std::string stringize_cpp11(const Tuple& t) { std::ostringstream result; stringize_cpp11_impl( t, [&result](const auto& v) { result << v; }, std::make_index_sequence< std::tuple_size<Tuple>::value >() ); return result; }
Dmitry
у D всё метаговно императивное
🐙 Antony
В императивном стиле получилось бы красивее и намного короче: template <class Tuple> std::string stringize_cpp11(const Tuple& t) { std::ostringstream result; for constexpr (const auto& v: t) { result << v; } return std::move(result.str()); }
Крылатый
Если бы лы constexpr for
🦥Alex Fails
А, точно
Tengiz
ось винда, да?
Кроссплатформ - windows, linux
Крылатый
Dmitry
if/for constexpr не вкусно
Igor
if/for constexpr не вкусно
просто потому что стиль императивный, или из этого какие-то проблемы вытекают вроде замедления компиляции?
Dmitry
потому что надо везде Meta<Govno>::value лепить
Nikita
Тупой вопрос: что нонче в плюсах есть годное для RPC?
только корбу не используй, заклинаю!
Крылатый
Thrift, gRPC, ICE
Шо из них легче?
Nikita
gRPС вроде от гугла
Nikita
я еще не успел его изучить подробно, но мы на него с корбы перелезаем в компании
Dmitry
ясно
Vlad
grpc.io - скачай либу, попробуй
Александр
В императивном стиле получилось бы красивее и намного короче: template <class Tuple> std::string stringize_cpp11(const Tuple& t) { std::ostringstream result; for constexpr (const auto& v: t) { result << v; } return std::move(result.str()); }
По-моему тут слово constexpr некстати. Скорее надо какой-нибудь for ... (const auto& a : t) {} Для for constexpr больше подходит семантика разворачивания цикла с произвольными constexpr значениями (как в предложении на stdcpp for constexpr (int i = 0; i < 10; i++) {})
Vlad
или почитай
Крылатый
Vadim
у меня есть класс со статическими переменными можно как то использовать Class как namespace и не вызывать Class::Var, а только Var?
Igor
имеешь в виду, using Class; Var = 10? нет, без указания класса к статической переменной можно обращаться только в методах собственно класа
Vadim
спасибо)
Sergey
Знатоки boost::hana. У меня есть два variadic списка типов (typename... Args1, typename... Args2). Есть красивые способы получить объединение, пересечение, разность этих множеств типов в виде другого variadic type list?
🦥Alex Fails
почему-то пдумал о std::difference
🦥Alex Fails
/cppref difference
FailsBot
Search results for "difference" 1. std::set_difference 2. std::adjacent_difference 3. std::set_symmetric_difference
Sergey
почему-то пдумал о std::difference
я говорю не о контейнерах)
🦥Alex Fails
но если мы сможем получить итераторы на бегин/энд списков аргументов, то почему бы и не юзать эти функции?
🦥Alex Fails
к тому же вроде можно списки в std::initializer_list собрать, а у него есть итераторы
🦥Alex Fails
но это не решение, а мысли вслух
Sergey
но это не решение, а мысли вслух
У меня нет контейнеров) у меня только типы В виде template parameter pack
Sergey
в голову приходит хелпер с is_same
да, я тоже дошёл до хелперов, но там получается не очень красивый код. Думал, в boost::hana решили подобную проблему
Andrei
Блин, какая же у плюсов всё-таки убогая мета...
🦥Alex Fails
ага
Andrei
Нужно обойти два std::variant-а каждый с каждым.
RattenKong 🦧🐀🦍️
Ты можешь написать что функцию для этого, а под капот засунуть системк непересекающихся множеств
RattenKong 🦧🐀🦍️
если мне не изменяет память, то быстрее будет перебора
Александр
difference и union_ точно нашёл, остальное не смотрел. Ну этого точно хватит. Конвертировать каждый список в set, сделать операции, а затем unpack
Александр
На самом деле восхищаюсь hana и другими мета-либами. Сколько крутого можно получить, используя только вывод типов и SFINAE
Крылатый
У вас тут давеча был срач про рандом.
Крылатый
Вот вам header-only либа! https://github.com/VHRanger/pcg.h
Крылатый
Ох уж эта мода на header-only.
Крылатый
Нет бы модули протолкать.
Stanislav
Igor
Вот вам header-only либа! https://github.com/VHRanger/pcg.h
хм, а почему бы тогда не сразу саму pcg?
Крылатый
да будут скоро )
Но я хочу уже сейчас... *хнык*
Stanislav
Но я хочу уже сейчас... *хнык*
берешь такой msvc 2017 и пробуешь
Stanislav
правда даже там через жопу это работает
Крылатый
берешь такой msvc 2017 и пробуешь
Но я хочу C++17 хотя бы, а не MS-C++20147
Крылатый
ну жди тогда С++20
К тому времени я уже выйду замуж.