Крылатый
Вопросец. Как нонче наиболее корректней проверять битность системы?
Крылатый
Во время компиляции.
Крылатый
Хватит ли sizeof(void*) == 8?
Dr. Friedrich
Смотря для какой цели проверяешь.
Крылатый
Gregory
как только переместил сам вектор - усе
Dr. Friedrich
Я не уверен, какой способ лучше — макросами или через sizeof. Сам понимаешь, в обоих случаях стандарт нам ничего не обещает.
Evgenii
Gregory
мне ненравится этот итератор (предлагаю то не я)
Gregory
и я не хочу такие итераторы
Крылатый
А у флага какая семантика?
хз ваще, я просто просматриваю кодец и наткнулся на странный кусок, который на 32х битах всегда false
Sergey
если _ITERATOR_DEBUG_LEVEL стоит дефолтный - всякие ненужные проверки
в общем залез в исходники https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_iterator.h#L760
Никаких проверок не увидел. Затем https://godbolt.org/ показал одинаковый код для итераторов и обычного разыменования vector::data() на clang и gcc. Потом посмотрел про iterator_debug_level, оказывается это фича msvc (https://msdn.microsoft.com/en-us/library/aa985982.aspx)
Gregory
ну да, текущие итераторы просто обертка над указателем на адрес позиции
Gregory
дешево и сердито
Алдар
зато быстро
Gregory
а то что прндлагал тот человек куда дороже
Алдар
хочешь безопасно - запили свои итераторы))
Gregory
а безопасно не будет
Gregory
просто в других местах будут проблемы
Gregory
идеальное удаление из вектора это перемещение элементов и подрезка вектора
Gregory
идеальное добавление это новый вектор с резервом под старый и новые элементы
идеальное удаление и добавление одновременно - си подобное, не использование методов вектора а модификация памяти - memmove и.т.д
Gregory
как ни крути
Gregory
а делать делать это даже на "безопасных" итераторах - лукаво, потом еще по добавленным пройдешься
Gregory
а если крииическое пездец место - в топку вектор, напиши на сях
Deleted Account
Gregory
😂
Gregory
на каждой строчке
Deleted Account
феминист чтоли ? хах
Evgen
._.
Evgen
О, я чота пропустил
Evgen
> 1002 members
Sae
Косплей дня: Элизабет из BioShock Infinite | Новости | Канобу
http://kanobu.ru/news/kosplej-dnya-elizabet-iz-bioshock-infinite-390198/?utm_source=twitter.com&utm_medium=social&utm_campaign=segodnya-v-nashey-rubrike-kospley-dnya-pr
🦥Alex Fails
27 марта 2017 года в главном офисе Яндекса (в Москве, ул Льва Толстого, д.16, третий подъезд, конференц-зал «Синий Кит») пройдет Открытая встреча Национальной рабочей группы по стандартизации C++. В программе планируются доклады о нововведениях в C++17, о будущих возможностях ("почему модули так долго делают") и после них будет скайп-беседа с Гором Нишановым, сотрудником Microsoft.
Посмотреть подробнее о мероприятии можно по ссылкам:
https://stdcpp.ru/blog/27-marta-obsuzhdaem-novosti-vstrechi-iso-c – анонс мероприятия на stdcpp.ru
https://events.yandex.ru/events/cpp-party/27-march-2017/ – анонс, программа и регистрация на events.yandex.ru
#stdcpp #isocpp #cppparty #yandex
Stanislav
🦥Alex Fails
Какое число выберем для Питерской встречи?
Результаты:
22 марта (0):
23 марта (0):
24 марта (4): kenny1847 AndreiKr crackedmind Anton_Kashcheev
Любое (3): Kotbegemot amyasnikov NeonLost
🦥Alex Fails
Предложения о месте встречи в Питере можно кидать с хештегом #procxxbdaymeet , чтобы я и администрация могли проще их искать.
🦥Alex Fails
Итак, друзья, у нас сейчас планируется целых два мероприятия. Первое – встреча участников в Питере, 21 марта. Эта встреча будет совмещена с митапом C++ Spb User Group. Подробности – по ссылке: https://www.meetup.com/St-Petersburg-CPP-User-Group/events/237846550/?rv=me1&_xtd=gatlbWFpbF9jbGlja9oAJDE1ZWE3OWVjLTA4YWItNDBmZC1iNjFmLWNmN2VkNmEzZmI3OQ&_af=event&_af_eid=237846550&https=on
И второе мероприятие – встреча Национальной группы комитета по стандартизации C++ в офисе Яндекса (информация доступна по ссылке https://t.me/ProCxxNews/27)
Сообщение будет обновляться по мере поступления информации.
#meet #procxxbdaymeet
Gregory
автор вопроса и предложения по итераторам увы слился
Gregory
не ну так то можно и не ссылку а указатель на сам вектор держать
Sergey
представь, что он там есть в лямбде и в локальном скоупе main) В принципе, проблему уже обговорили)
Sergey
сложно ломать то, чего нету, но чуть позже попробую)
Sergey
сейчас не за компом, не могу внятно отвечать)
Gregory
ну тут же все очевидно, "оффсет итераторы" (пусть оно так чтоли называется), будут ломаться только тогда когда по адресу вектора больше нет самого вектора - всё.
Gregory
ну и по сути это тогда когда обьект закончил свой жизненный цикл.
Gregory
я ранее говорил еще про "перемещение" но нет я был не совсем прав, после перемещения этот вектор все еще будет существовтаь просто станет пустым.
Gregory
ага
Gregory
а еще всегда проверочка
Gregory
что внезапно оффсет вне диапазона
Gregory
вдруг элементы удалили
Gregory
ну так тот человек хотел безопасные итераторы чтобы в цикле удалять элементы
Gregory
или частный случай только добавления был?
Sergey
У вас есть какая-либо имплементация этих итераторов?)
Gregory
даешь +2 итератора :D
push_safe_iterator
erase_safe_iterator
:D
Gregory
вообще это какой то "презерватив" для тех кто не осилил алгоритмы из stl
Gregory
типа remove_if и подобного
Gregory
ну тут да, философия уже )
Daniil
Mikhail
🦥Alex Fails
место для посиделок, где ты платишь за время, а не за жратву, к примеру
Daniil
Mikhail
Любопытно
По другому у плюсовиков никак
Vyacheslav
В споре рождается истина
Gregory
еще есть тема в которой я не могу утверждать что то конкретное, надо смотреть, но что насчет оптимизаций компилятором, векторизация там....
Sergey
Сейчас у обычных итераторов есть просто указатель на данные. Разве прибавление одного уровня коственности может дать прибавку?
Gregory
что оно будет медленее оно ясно, но насколько
Kirill
По поводу питерской встречи. 21 марта в офисе оракл будет встреча с++ спб юзер групп. Можно туда завалиться и сделать спп чат аферпати
Sergey
что оно будет медленее оно ясно, но насколько
в принципе если аллоцировать вектор в куче + аллокатор будет выделять место под data рядом, небольшой объём поместится в кэш линию) а вот если вектор на стеке, да ещё мы передаёт итераторы какому нибудь алгоритму, который для разыменования будет ходить в другой стекфрейм..
Sergey
ладно, я тоже жду тестов)
Sergey
А так я не додумал по поводу копирования, сломать не сломав текущую реализацию сходу не получается) Поэтому вдвойне жду какой-либо реализации))
Sergey
по поводу с++ заранее всегда опасно рассуждать с полной уверенностью)
Sergey
поэтому ждём реализации) она и родит истину
Gregory
что может сломаться я хз, по поводу просадки пефоманса еще и из-за кеша - ну да.
Gregory
сам вектор может быть в одном месте, данные во втором а наш итератор с указателем на вектор в третьем.
Gregory
с текущими итераторами понятное дело что этого третьего звена ввиде адреса на сам вектор нет, ну и минус одно место по кешу