Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Можно ли как-нибудь в кетчере поймать факт перезаписи указателя и соотв. автоматом убить первый объект?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 11:24 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Кажется в общем случае эта проблема называется Memory Leak Detection и можно искать по этим ключевым словам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:07 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
LumixМожно ли как-нибудь в кетчере поймать факт перезаписи указателя и соотв. автоматом убить первый объект?? Да. Использовать смарт указатели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:18 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Есть разные способы борьбы с проблемой. На мой взгляд для С++ надо просто не писать такой код. Попытка создать сверх-умные указатели привела к созданию целого спектра тяжёлых технологий которые сегодня юзаются в Java и .Net. Это не путь С++. Короче Это не путь для истинного "самурая". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:21 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
mayton, Правильно, надо использовать достаточно умные указатели, а не слишком умные :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:24 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Ну он не истинный самурай - переживет. Но вот то, что он хочет именно в исходно запрошенном виде - это действительно не С++ )) А умные поинтеры - почему бы и нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:24 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Ну.. щас мы с вами разбежимся в разные стороны. А какие умные? auto_ptr? shared_ptr? Каких библиотек? И вообще какие умнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:26 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
можете попробовать перегрузить new для catcher.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:36 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
mayton , Либо я чего-то не понял, либо вопрос должен звучать не так: А какие умные? И вообще какие умнее? А так: А какие решают поставленную задачу? Выглядит как "Ща мы разбежимся, а чтобы мотивировать вас, я тут припас... дробовик!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:38 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Дада. И дробовик у меня тоже есть. Давайте в контексте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:40 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Что давать то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:46 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Дискутировать говорю в контексте вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:49 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
В контексте вопроса "Какие указатели умнее?" или в контексте вопроса "Как автоматически удалить объект?"? Хватит флиртовать, не пятница же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 15:54 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
А шо тут дискутировать. OoCc уже ответил - использовать смарт-указатели. Если указатели только локальные, то - std::auto_ptr, std::unique_ptr, boost::scoped_ptr. Если плнируется передавать за пределы функции - то std::shared_ptr, boost::shared_ptr. Выбрать из списка то что поддерживает компилятор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 16:07 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
auto_ptr вроде как deprecated теперь... вместо него (если нужно именно его поведение) предлагают std::unique_ptr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 16:55 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
ну видно же, что автор топика хочет "прострелить себе ногу", фигурально выражаясь поэтому, несомненно, настойчиво рекомендую перегрузить ему оператор new ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 16:55 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
kosh the bestну видно же, что автор топика хочет "прострелить себе ногу", фигурально выражаясь поэтому, несомненно, настойчиво рекомендую перегрузить ему оператор new Код давайте. Это будет уже интересный вброс для обсуждения и более чем в контексте )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 17:05 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Edd.Dragonkosh the bestну видно же, что автор топика хочет "прострелить себе ногу", фигурально выражаясь поэтому, несомненно, настойчиво рекомендую перегрузить ему оператор new Код давайте. Это будет уже интересный вброс для обсуждения и более чем в контексте )) из статического массива сделать фабрику указателей - банально. Давайте сразу что нибудь с векторами унутрях ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 17:10 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
maytonЕсть разные способы борьбы с проблемой. На мой взгляд для С++ надо просто не писать такой код. Попытка создать сверх-умные указатели привела к созданию целого спектра тяжёлых технологий которые сегодня юзаются в Java и .Net. Это не путь С++. Короче Это не путь для истинного "самурая". Ошибаешься, там не смартуказатели, там габаж колекторы. Габаж коллекторы медленные. Смартуказатели быстрые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 17:18 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
MasterZivmaytonЕсть разные способы борьбы с проблемой. На мой взгляд для С++ надо просто не писать такой код. Попытка создать сверх-умные указатели привела к созданию целого спектра тяжёлых технологий которые сегодня юзаются в Java и .Net. Это не путь С++. Короче Это не путь для истинного "самурая". Ошибаешься, там не смартуказатели, там габаж колекторы. Габаж коллекторы медленные. Смартуказатели быстрые. А принцип С++ "Определение - есть инициализация " (С) Страуструп , еще быстрее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 17:43 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
ДохтаР А принцип С++ "Определение - есть инициализация " (С) Страуструп , еще быстрее :) Поэтому я поддерживаю идею повелосипедить на предмет перегрузки для придания умности new. И сравнить производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 17:45 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Другое дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 18:06 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
kosh the bestможете попробовать перегрузить new для catcher.. Можете подсказать как именно построить решение с перегрузкой new / delete конкретно для этого случая? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 18:09 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
MasterZivmaytonЕсть разные способы борьбы с проблемой. На мой взгляд для С++ надо просто не писать такой код. Попытка создать сверх-умные указатели привела к созданию целого спектра тяжёлых технологий которые сегодня юзаются в Java и .Net. Это не путь С++. Короче Это не путь для истинного "самурая". Ошибаешься, там не смартуказатели, там габаж колекторы. Габаж коллекторы медленные. Смартуказатели быстрые. Он не быстрый и не медленный. Мы не можем вычленить и детерминировать время работы смарт-указателя по сравнению с GC. Это в мультипоточности происходит. Кстати в тему продолжения 13587263 . Я ставил Oracle JRockit чтобы посмотреть как ораклоиды хвастаются своим новым GC. Но пока еще до тестов дело не дошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 18:20 |
|
||
|
Поймать факт перезаписи
|
|||
|---|---|---|---|
|
#18+
Lumixkosh the bestможете попробовать перегрузить new для catcher.. Можете подсказать как именно построить решение с перегрузкой new / delete конкретно для этого случая? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Обьявите статическую переменную в struct catcher в которой храните адрес globalStore который вернул первый вызов new. При повтороном вызове new память не выделяете , бросаете исключение , или возвращаете адрес существующего обьекта из статической переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2012, 18:38 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38074735&tid=2020561]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 279ms |
| total: | 553ms |

| 0 / 0 |
