MrSmith
error: no matching function for call to ‘node::sendMessage(<brace-enclosed initializer list>, int)’ (*nw.clusster[0].get()).sendMessage({12},12);
MrSmith
а азачем меня звал? 😊
Там чувак в видосе рассказывал про трейты (ну скажем так знаменитый чел, в комитете нас представляет и писал либу на шлабонной магии для рефлексии pod) он сказал мол алгоритмы буста норм либа все юзают пишут лучшие программисты. Позвал чтоб ты оценил что заслуги ваши перед сообществом оценили даже в Я
MrSmith
void sendMessage(std::variant<castingPolicies,std::initializer_list<GUID>> resiver, data d);
MrSmith
Хз наверное я костыль делаю
MrSmith
И проще перегрузкой
Alexander "SonnySlave"
нонейм какой-то
Alexander "SonnySlave"
он точно норамальные вещи толкает? а то я знаю таких - понасоветуют вского разного, а потом от таких советов только отучивать приходится
Alexander "SonnySlave"
только вот процесс отучивания намного сложнее, потому что советчику то верят с чего-то, а тебе нет
MrSmith
Ну может и ноунейм но на кометете один из чуваков, он толкнул к примеру много чего в variant
MrSmith
только вот процесс отучивания намного сложнее, потому что советчику то верят с чего-то, а тебе нет
Хз, вроде он особо и не советует просто рассказывает что как робит и что и как он решал. Чудоковатый тип конечно, но много интересного рассказал
MrSmith
хз, кто это такой, честно говоря
std::variant<castingPolicies,std::initializer_list<GUID>> resiver, data d) кстати такое не полетит?
MrSmith
Есть конечно способ решить все двумя перегрузками, одну сделать вариадик другую православной но интересно разве нельзя делать функцию с несколькими инит листами
Alexander "SonnySlave"
Полухин
ну погуглил я его - среднестатистический бездельник с комитета
Saphire
...гм
Saphire
Кепка не взлетела
Alexander "SonnySlave"
мб я просто найти не могу
MrSmith
Ну собственно я вот это смотрел
MrSmith
ну погуглил я его - среднестатистический бездельник с комитета
Ну я тоже не в восторге от того как работает комитет GCC и прочее но не могу кинуться и резко сделать этот мир лучше. Ибо это титаническая задачка, может компиль и за месяц-два можно написать но явно не настолько оптимальный и крутой какой есть сегодня в gcc или шланге хотя конено интересный елендж
Alexander "SonnySlave"
https://www.youtube.com/watch?v=jDI5CHKFKd0
он украл эту идею этой либы
Alexander "SonnySlave"
и это yet another reflection library
MrSmith
он украл эту идею этой либы
Яндекс все пиздит я не удивлен
MrSmith
Ладно разочаровал меня пойду дальше ничего не делать
Alexander "SonnySlave"
Ладно разочаровал меня пойду дальше ничего не делать
ну сорри. я просто открыл тебе чуток глазки
Saphire
Кепка не взлетела
Падает с сегфалом
Saphire
Openssl не тот видимо стоит у меня/в конане
MrSmith
ну сорри. я просто открыл тебе чуток глазки
Ну хз я к примеру написал на си лямбды и видел кучу чуваков с интересными проектами, не думал что чуваки из яндекса могут пиздить и читать доклады этом прям вообще дно
Alexander "SonnySlave"
и самое главное, что просто хайпятся на этом
MrSmith
Ну яндекс сам по себе дно если на то пошло, только тсс
Andrei
Что за хрень тут происходит прямо сейчас?
Alexander "SonnySlave"
Openssl не тот видимо стоит у меня/в конане
ну пропиши conan install ещё разок
Andrei
D:
Andrei
ну погуглил я его - среднестатистический бездельник с комитета
MrSmith
ну погуглил я его - среднестатистический бездельник с комитета
Если на то пошло лекция у него крутая, но я верю больше александру чем чувакам из яндекса. Зная их политику зарплат и тд
MrSmith
Смотрел про YT это вообще норма? Слизали Raft почти что наговорили по много умных слов а по сути нифига
Anonymous
Смотрел про YT это вообще норма? Слизали Raft почти что наговорили по много умных слов а по сути нифига
А что ожидалось? "Слизали Raft"? Предлагаешь сделать свой еще один лучший Paxos? Raft прекрасно работает для того, для чего придуман.
Saphire
ну пропиши conan install ещё разок
Домой когда вернусь :3
MrSmith
sendMessage(std::initializer_list<int>{12},12)
MrSmith
Вот так работает
MrSmith
Это баг Gcc или так и задуманно?
MrSmith
Есть у кого шланг под рукой?
Anonymous
Gcc.godbolt.org?
Anonymous
стандарт какой?
MrSmith
стандарт какой?
https://hastebin.com/giwulekeba.cpp
MrSmith
Я пытался крч
MrSmith
с++ 17
Anonymous
Даже не смотря на код, скорей всего ты нарвался на это http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html
MrSmith
Даже не смотря на код, скорей всего ты нарвался на это http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html
А что с кодом? Ну тоесть я правильно понял что компилятор не смог в дедукцию типа
Anonymous
А что с кодом? Ну тоесть я правильно понял что компилятор не смог в дедукцию типа
Компилятор смог. Только вот ему явно запрещено {12} считать за initializer_list. Это дедюсится в инт : https://godbolt.org/g/zopd8P
Anonymous
Ладно, понятно, вопрос в другом, получается мне пилить вариадик?
Если ты думаешь, что я читал километры истории, то ты ошибаешься. Пилить для чего?
MrSmith
Если ты думаешь, что я читал километры истории, то ты ошибаешься. Пилить для чего?
В общем идея простая Я хочу указывать получателей в виде легковесного контейнера. Мб лист или что то еще, но хочется иметь синтаксис перечисления типа (1,12,13, data)
MrSmith
Можно конечно auto tmp = {}; (tmp, data); Но вдруг это не единственный вариант
Anonymous
А нафига тебе там нужен был std::variant?
MrSmith
А нафига тебе там нужен был std::variant?
Дык оно может быть списком из получателей или политикой отправки
MrSmith
Одно определяется enum - другое лист
MrSmith
Я бы мог сделать перегрузку - но в таком случае я бы не смог в рантайме определить и пришлось бы высовывать ифы тоесть размывать логику за функцию или городить еще какой паровоз. Ну если придумаешь решение лучше я конечно же исправлю свой говнокод
Anonymous
типа такого https://godbolt.org/g/grurSb ?
Anonymous
Это этого тоже попахивает (о чем clang радостно сообщает). Оно скорее задает направление дальнейших размышлений
Anonymous
кстати, ты не можешь иметь std::initializer_list в качестве настоящего типа. Нельзя написать std::variant<std::initializer_list<int» или std::vector<std::initializer_list<int» и т.д. Это не настоящий тип, он существует только на этапе компиляции и за ним нет контейнера, где бы хранились данные в рантайме
Anonymous
хм, где это написано?
Ok, это поменяли в c++14 и добавили больше конкретики. В c++11 это было так: The underlying array is not guaranteed to exist after the lifetime of the original initializer list object has ended. The storage for std::initializer_list is unspecified (i.e. it could be automatic, temporary, or static read-only memory, depending on the situation).
Vladislav
другое дело что любой шаг влево/вправо от стандартного юзкейса легко выстрелит в ногу шальным UB
Anonymous
Ну вот эта фраза "The underlying array is not guaranteed to exist after the lifetime of the original initializer list object has ended" мной читается так: При std::vector<std::initializer_list<int» v; v.push_back({12,13}); original initilizer list object здесь {12,13} и его вермя жизни до последней ;. Что помещается в вектор - х.з.
Anonymous
Не зря это уточнили в C++14
MrSmith
Хз норм идея в с++ есть и стэковые типы правда из коробки только один достаточно гибкий
MrSmith
Зато специализаций куча константных но все же я бы сделал еще пару но так как это н так просто то не буду
Anonymous
Кстати об уточнении из c++14. Если я правильно понял, то запихать initializer_list в вектор будет равносильно этому: https://godbolt.org/g/NoFYXv
Anonymous
Именно. Вот фраза из C++14: The underlying array is a temporary array of type const T[N], in which each element is copy-initialized (except that narrowing conversions are invalid) from the corresponding element of the original initializer list. The lifetime of the underlying array is the same as any other temporary object, except that initializing an initializer_list object from the array extends the lifetime of the array exactly like binding a reference to a temporary (with the same exceptions, such as for initializing a non-static class member). The underlying array may be allocated in read-only memory.
Vladislav
но это не то же самое что "не настоящий тип" - скорее, "тип с наркоманской семантикой"