Крылатый
их реализация
Vitaliy
их реализация
Хорошо, а хоть какая-нибудь реализация уже есть, которая не experimental ?
B
nonstd::any
B
https://github.com/martinmoene/any-lite/
Berkus
олсо в последнем libcxx таки any уже в std
Berkus
могу доказать ссылкой на https://llvm.org/svn/llvm-project/libcxx/trunk/include/any
Berkus
но релизы libcxx обычно слегка отстают
Vitaliy
но релизы libcxx обычно слегка отстают
Так, я понял, что чего-то не знаю. Есть libc++, есть stdlibc++. Это две разные реализации стандартной библиотеки ?
Vitaliy
libstdc++ - GNU libc++ - LLVM
Спасибо, уже погуглил )
Vitaliy
Короче говоря, чтобы отказаться от std::experimental нужно подождать соответствующих версий libc++ и libstdc++. Так ?
Aidar
да
Vitaliy ◀️TriΔng3l▶️
Vitaliy ◀️TriΔng3l▶️
std::
Vitaliy ◀️TriΔng3l▶️
Именно
🐙 Antony
Короче говоря, чтобы отказаться от std::experimental нужно подождать соответствующих версий libc++ и libstdc++. Так ?
Ну или namepsace std { using namespace std::experimental; } только тссс! я этого не советовал
Vitaliy
Ну или namepsace std { using namespace std::experimental; } только тссс! я этого не советовал
Но для инклудов все равно придётся писать include <experimental/headerName>
Alexander "SonnySlave"
Но для инклудов все равно придётся писать include <experimental/headerName>
Просто не парься и жди новой либы. Подправить на новую версию будет очень легко
Berkus
отличная идея, спасибо )
Berkus
приятно что в с++ можно нарушить все правила хорошего тона и still get paid
Max
Есть необходимость сделать такой себе unique_lock, который будет служить флагом для некоторого класса, как в примере. Поскольку не хочу давать свободный доступ к самому Lock у Executor, то добавил Executor-у возможность самому создавать этот Lock и выдавать наружу в обертке UniqueLock-а. Это нормальное (самое простое) решение, или можно как-то по другому сделать, сохраняя приватность поля _lock у класса Executor? P.S. Решение должно быть однопоточное. https://ideone.com/xaM7gW
pavel
Интересно, а есть в C++ стандарте такое предложение сделать возможность олучения номера итерации в цикле. Иногда пишешь for( auto &item : container ) { } И хотелось бы иногда понимать на какой итерации от нуля ты находишься. Заколебло писать так: { size_t iter_index = 0; for( auto &item : container ) { // blabla ++ iter_index; } } Правда непонятно как это сделать синтаксически...
Vlad
с синтаксисом типа for (auto & item : container; size_t counter) { }
kitsu
если лень - есть буст
Anton
Ребят, есть ли у кого-то на примете хорошая либа для решения разреженных СЛАУ больших размерностей?
RattenKong 🦧🐀🦍️
напиши итератор пар, делов то
проще в скоуп завернуть фор и объявить переменную-счетчик тогда уж
Egor
Может, просто цикл по индексу, если контейнер умеет?
Mikhail
А не много ли требуют ребята из яндекса при регистрации? Зачем им место работы/учёбы, аккаунты в соц сетях?
Mikhail
Constantine
есть мой личный велосипед https://pastebin.com/N23FycCh под C++17 кажись можно убирать разницу indexed/indexed_view и делать auto [a, &b] : enumerate()
Mikhail
чтобы приглашать на работу
Ну насколько я понял из описания, это событие в первую очередь для коммунити, а не какая то личная конференция яндекса. Если хотят искать людей на работу, то пусть предложат заполнить анкету по желанию непосредственно там.
Mikhail
Вообщем безобразие
Mikhail
Я бы сходил, но такую форму регистрации я отказываюсь заполнять
pavel
Это слишком ява-питонно) Я бы предложил идею с огранизацией неких потоков. Вот эта конструкция auto &item : container - это как-бы поток. А я в цикле таких потоков хочу несколько как-бы for ( auto &item : container, auto &z : vect, auto &i : int_generator ) Я параллельно иду по двум контейнерам container и vect и ещё у меня есть i сгенерированное генератором - это мой номер итерации) Трёхпоточный цикл, мать его за ногу. Один из потоков просто поток интов от нуля. И генератор может быть не простой, а озорной - например от -100 до +1000 с шагом 5 Цикл останавливается когда минимальной длины поток сдох.
RattenKong 🦧🐀🦍️
Когда шаг задаешь
pavel
Нет, итераторов у меня в примере нет вообще. Я получаю ссылки на объекты в контейнерах сразу.
RattenKong 🦧🐀🦍️
что если у потоков разный размер?
pavel
Цикл останавливается на конце минимального.
RattenKong 🦧🐀🦍️
А, увидел
B
а если container это std::vector<std::string> например?
B
idx=1 и тогда item это буквы container[1]
pavel
Это никак не связано между собой в этом примере у чувака.
RattenKong 🦧🐀🦍️
Но вообще прикольно выглядит
pavel
idx ничего не индексирует, это просто то что я назвал "ещё одним потоком" в цикле видимо.
RattenKong 🦧🐀🦍️
Правда зачем такое не могу придумать...
RattenKong 🦧🐀🦍️
Вообще, наиболее логично сделать for (auto &i : v; int i)
RattenKong 🦧🐀🦍️
Как в обычном форе
RattenKong 🦧🐀🦍️
И похоже на инициализацию новую
RattenKong 🦧🐀🦍️
Которая вроде if (true; int i)
pavel
https://wandbox.org/permlink/961i4D1SOQn42V23 на скорую руку сделал
Спасибо добрый человек. Возможно это даже можно жрать)
pavel
https://wandbox.org/permlink/961i4D1SOQn42V23 на скорую руку сделал
auto[it, counter] - вот эту конструкцию я не понимать...
Ivan
Это С++17
pavel
Это С++17
А оно умеет auto[a,b,c,d,e,f] = std::make_tuple( 1,2,3,4,5 ) ?
Ivan
Ага)
Denis
пока cmake
После долгой и мучительной пересборки 3rdparty под msvc из-за отказа от MinGW могу смело заявить, что CMake — топ. Если в либе есть CMake, то за 10 минут можно разобраться и всё подстроить под себя.
Ivan
Это дорого)
B
я к тому, что такой синтаксис никогда не введут из-за того, что он уже будет компилироваться и работать
B
из-за backward compatibility в старых плюсах такой синтаксис будет вести себя по одному, а в "новом" стандарте (если примут), будет вести как хочется
Ivan
))) я с телефона. Сути это не меняет, но ты прав)
pavel
Дык есть же https://habrahabr.ru/company/yandex/blog/342354/ Можно писать в С++20 for (unsigned i = 0; auto& x : thing.items()) { ++i; // ... }
Это конско. Если в цикле много continue; то везде надо не забыть этот грёбаный ++i; )
Ivan
Я просто понял так, что хочешь хранить контейнер из пары элемент и индекс