@ProCxx

Страница 507 из 2477
Andrei
09.01.2017
17:43:54
Поскольку ты сам сказал, что в векторе числа, и значит точно живые объекты.

При этом явно не видно вызова vec.size или vec.empty ДО pop_back, что намекает, что ты этого не делаешь.

Сайз вектора может быть валидным в дебаге, лучше его именно распринтить в релизе аккурат до инструкции с std::count

Хотя он всё равно может быть валидным.

Google
Andrei
09.01.2017
17:46:45
Если одновременно поехали begin и end

Я вызываю pop_back только после push_back
Тогда нужен код с пруфами.

Ах да, а еще конечно многопоточка.

Я ставлю 100 к 1 что это ошибка в STL

И 1 к 100 что у тебя.

Я один раз в жизни нашел ошибку в STL и один раз в имплементации POSIX-а в одной операционке

И они проявлялись гораздо изощренее.

Выкини весь лишний код. потихоньку отрезай куски программы, пока проблема продолжает повторяться.

В итоге ты локализуешь её.

My guess — сломанный вектор.

(или многопоточка, если она есть)

Google
Evgeniy
09.01.2017
17:50:43
спасибо)

Andrei
09.01.2017
17:51:02
Еще могу посоветовать следующее.

Сделай структуру со статическим полем count

Которая в деструкторе и конструкторе пишет его и еще в конструкторе инкрементит

И посмотри нет ли проблемы.

Потому что я не верю в push_back и pop_back следом за ним.

Penter
09.01.2017
17:52:44
В силу Господню

Surreal
09.01.2017
17:53:14
Reindex.. please wait

Andrei
09.01.2017
17:53:28
Если это NDA то он скорее всего не может

И нет, блоки не помогут, я думаю проблема в логике.

А значит нужны все внешние бранчи тоже.

Surreal
09.01.2017
17:55:13
Reindex.. please wait

Andrei
09.01.2017
17:57:23
Не всегда.

Surreal
09.01.2017
18:03:49
Andrei
09.01.2017
18:05:15
Тоже задумался.

Но != едва ли что-то испортить может.

Если не влияет на push pop

Surreal
09.01.2017
18:10:48
Reindex.. please wait

Evgeniy
09.01.2017
18:13:39
Reindex.. please wait
Сравниваю что не равен переданному в функцию вектору

Google
Andrei
09.01.2017
18:14:25
Это не поэлементное сравнение, если что.

Evgeniy
09.01.2017
18:14:40
Потому что я не верю в push_back и pop_back следом за ним.
Печатаю размер до/после pop, начинает фейлить end равен самому себе когда размер вектора 6, причем до pop

http://en.cppreference.com/w/cpp/container/vector/operator_cmp

Andrei
09.01.2017
18:16:47
Да.

Evgeniy
09.01.2017
18:20:08
Reindex.. please wait
Да какой блок? Нет никакого кода связанного с вектором кроме этого. Весь код выкладывать не хочу и смысла нет. Выложу минимальный пример когда получу его

Andrei
09.01.2017
18:20:27
Печатаю размер до/после pop, начинает фейлить end равен самому себе когда размер вектора 6, причем до pop
Сумбурное описание, но может еще быть так, что если вектор — поле какой-то структуры, то умерла владеющая им структура или на её место что-то записали.

Andrei
09.01.2017
18:21:18
или std::endl

Хотя если писать в std::cerr сразу, то это не буфферизируется

Evgeniy
09.01.2017
18:24:33
Surreal
09.01.2017
18:26:14
Reindex.. please wait

Andrei
09.01.2017
18:28:10
Её деструктора скорее всего никто не вызывал.

Просто на её место что-то записали. Ну короче я на 99% уверен, что это ub, связанное либо с pop_back() либо с любым другим способом испортить вектор.

Но мне ваще платили большие деньги, чтобы я с таким разбирался, а тут даже кода нет :3

Поэтому ждем примера или suit yourself.

Tsar
09.01.2017
22:32:16
Подскажите чат проганья под windows? или это он и есть?

Andrei
09.01.2017
22:55:33
Задавай вопрос.

Дед Пегас
10.01.2017
07:57:06
http://www.bfilipek.com/2017/01/cpp17features.html

Google
Tsar
10.01.2017
09:52:17
Задавай вопрос.
почему EPROCESS находится на nonpaged странице?

Square
10.01.2017
12:31:46
коллеги, обьясните тупому, почему в строке std::for_each(std_map.begin(), std_map.end(), [](auto s) {delete s.second; s.second = nullptr; }); auto s имеет тип std::pair а не std::map::iterator

я просто не люблю ключевое слово auto и сначала написал там полный тип шаблонный - а оно, собака, не билдится

Vladislav
10.01.2017
12:35:15
http://en.cppreference.com/w/cpp/algorithm/for_each

Square
10.01.2017
12:35:51
посыпаю голову пеплом

"f - function object, to be applied to the result of dereferencing every iterator in the range"
привык к мсдну: Return Value A copy of the function object after it has been applied to all of the elements in the range.

бляха

Admin
ERROR: S client not available

Aidar
10.01.2017
12:36:56
Мсдн мсдно

Vladislav
10.01.2017
12:37:07
в c++11 не копия а std::move от него)

babysitter
10.01.2017
12:37:29
я тоже очнулся уже на cppreference

Aidar
10.01.2017
12:37:43
Я думал там типа универсальный ссылок

Или как оно нормально называется

Square
10.01.2017
12:38:03
Я думал там типа универсальный ссылок
да я там и так и сяк крутил вертел этот итератор

Aidar
10.01.2017
12:38:25
Там не итератор потому что а дереференс его

Square
10.01.2017
12:38:35
да я понял уже

я просто гляжу в мсдн и невдупляю

Aidar
10.01.2017
12:38:53
Не гляди тула

Square
10.01.2017
12:38:59
спасибо

Google
Дед Пегас
10.01.2017
12:39:41
Читай стандарт!)

// и имплементацию

Aidar
10.01.2017
12:43:38
.clear и все

Сами деструкторизируются

Surreal
10.01.2017
12:44:09
.clear и все
Reindex.. please wait

Aidar
10.01.2017
12:44:36
Думаю ему пофигу тут

Vladislav
10.01.2017
12:44:57
Surreal
10.01.2017
12:45:31
Aidar
10.01.2017
12:45:57
Думаю это не хэш таблица

А обычная мапа

Сортированная

Дерево тобишь

Surreal
10.01.2017
12:46:27
Reindex.. please wait

Aidar
10.01.2017
12:46:55
std::map

Нк

Ну

Хэши? Где?

Surreal
10.01.2017
12:48:38
Reindex.. please wait

Reindex.. please wait

Square
10.01.2017
12:51:00
гайз, спасибо за советы, это был очень синтетический пример. боевой код не такой.

Страница 507 из 2477