Re[5]: S.T.L.
От: antropolog  
Дата: 28.02.16 12:07
Оценка:
Здравствуйте, Andrew S, Вы писали:


AS>К сожалению, пока что весомых (на мой взгляд, конечно) аргументов там не приведено, единственное, что можно хоть как-то принять — сохранить итератор end после swap-a, что не требуется стандартом. Аргументация пока в целом сводится к "ну вот так было сделано в Dinkumware и я не вижу причин это менять... А, и еще end итераторы после swap".


аргументация у Лававея крайне слабая, но его можно понять. В стандарте есть unspecified behaviour. Написана куча говнокода, абьюзящего end после swap/move, и Лававею очень не хочется ломать всю эту "красоту", т.к. его поимеют в хвост и в гриву за подобные жертвы совместимостью с легаси в угоду оптимизации. Почему он просто не написал "backward compatability" я хз.
Re[10]: S.T.L.
От: Andrew S Россия http://alchemy-lab.com
Дата: 28.02.16 13:20
Оценка:
V>>>>>Такой подход позволит увеличить частоту выделений и освобождений памяти, а у VS оно иногда полезно для поиска утечек и расстрела памяти (гарды) через CRT или сторонними средствами. Но согласен, такое стоило по-умолчанию оставлять только в дебаге.
AS>>>>Предлагаю переместить это в юмор.
V>>>не понял юмора
AS>>Вот и я. Поскольку это похоже на бородатый анекдот про девочку, которая пошла в лес и встретила волка.
V>Я сам выделения/освобождения памяти вставлял в ассерты и таким образом локализовал место лика, а ты мне про какую-то девочку и волка рассказываешь.

Нужное выделено. Для поиска ликов есть специализированные средства. gflags, crt дебаг и прочее. Ими и надо пользоваться. На релизный код это все влять не должно.
А рассказываю это я к тому, что для решения проблем нужно пользоваться средствами, которые для этого предназначены, а не придумывать оправдания кривому поведению стандартной библиотеки. Если вы этого не понимаете — что ж, могу только посочувствовать...
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[6]: S.T.L.
От: Andrew S Россия http://alchemy-lab.com
Дата: 28.02.16 13:24
Оценка:
AS>>К сожалению, пока что весомых (на мой взгляд, конечно) аргументов там не приведено, единственное, что можно хоть как-то принять — сохранить итератор end после swap-a, что не требуется стандартом. Аргументация пока в целом сводится к "ну вот так было сделано в Dinkumware и я не вижу причин это менять... А, и еще end итераторы после swap".

A>аргументация у Лававея крайне слабая, но его можно понять. В стандарте есть unspecified behaviour. Написана куча говнокода, абьюзящего end после swap/move, и Лававею очень не хочется ломать всю эту "красоту", т.к. его поимеют в хвост и в гриву за подобные жертвы совместимостью с легаси в угоду оптимизации. Почему он просто не написал "backward compatability" я хз.


Да, это можно было бы принять за аргумент (хотя и тоже слабый, т.к. кидание исключений из дефолтового конструктора вполне себе несовместимость с кучей кода, который такое поведение не ожидает — с хорошей вероятностью в любом большом продукте найти такие места, примеры приводились). И непонятно, почему нельзя регулировать такое поведение хотя бы макросом — с учетом того, что макросов, которые меняют аби, и так уже есть. Все были бы счастливы
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re: VC14 std::containers allocs node in ctor
От: Andrew S Россия http://alchemy-lab.com
Дата: 28.02.16 13:27
Оценка:
AS>Стали смотреть на VC2015 и выяснилось, что новомодная реализация контейнеров (list, set/map, deq) — все в дефолтовом конструкторе аллоцируют по ноде на хипе.

На всякий случай. В коннекте нам ответили, что понимают суть проблемы, но менять поведение в ближайшее время не планируют. Для себя мы выводы сделали
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[11]: S.T.L.
От: Vain Россия google.ru
Дата: 28.02.16 20:28
Оценка:
Здравствуйте, Andrew S, Вы писали:

V>>Я сам выделения/освобождения памяти вставлял в ассерты и таким образом локализовал место лика, а ты мне про какую-то девочку и волка рассказываешь.

AS>Нужное выделено. Для поиска ликов есть специализированные средства. gflags, crt дебаг и прочее.
crt debug и был использован

AS>А рассказываю это я к тому, что для решения проблем нужно пользоваться средствами, которые для этого предназначены, а не придумывать оправдания кривому поведению стандартной библиотеки. Если вы этого не понимаете — что ж, могу только посочувствовать...

иногда "нужные средства" просто неработают, поэтому приходится сооружать свои из г-на и палок
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[12]: S.T.L.
От: Andrew S Россия http://alchemy-lab.com
Дата: 28.02.16 23:24
Оценка:
V>>>Я сам выделения/освобождения памяти вставлял в ассерты и таким образом локализовал место лика, а ты мне про какую-то девочку и волка рассказываешь.
AS>>Нужное выделено. Для поиска ликов есть специализированные средства. gflags, crt дебаг и прочее.
V>crt debug и был использован

AS>>А рассказываю это я к тому, что для решения проблем нужно пользоваться средствами, которые для этого предназначены, а не придумывать оправдания кривому поведению стандартной библиотеки. Если вы этого не понимаете — что ж, могу только посочувствовать...

V>иногда "нужные средства" просто неработают, поэтому приходится сооружать свои из г-на и палок

Кто ж запрщает — делайте свои. Специализированные. Применяйте по необходимости. Но при чем тут stl и всем?
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.