Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
FishHookAnatoly MoskovskyИ что тут плохого? раздувание кода, разве это хорошо? Что у вас за пренебрежительное отношение к обобщённому программированию. Использование макрофункций в С++ вообще нежелательно. В данном конкретном случае как минимум отсутствует проверка типов входных и выходных параметров функции, что приводит к потенциальным проблемам. PS Если не ошибаюсь даже просто макроимена(не макрофункции) в С++ нежелательно использовать. Это связано, как минимум, с возможными проблемами при отладке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 01:44 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЧто у вас за пренебрежительное отношение к обобщённому программированию. Использование макрофункций в С++ вообще нежелательно. В данном конкретном случае как минимум отсутствует проверка типов входных и выходных параметров функции, что приводит к потенциальным проблемам. PS Если не ошибаюсь даже просто макроимена(не макрофункции) в С++ нежелательно использовать. Это связано, как минимум, с возможными проблемами при отладке с чего вдруг она будет отсутствовать в шаблоне? даже жёстче чем в FreeAndNil дельфийском будет проверка типов PPS: волков бояться, ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 07:08 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)SashaMercuryЧто у вас за пренебрежительное отношение к обобщённому программированию. Использование макрофункций в С++ вообще нежелательно. В данном конкретном случае как минимум отсутствует проверка типов входных и выходных параметров функции, что приводит к потенциальным проблемам. PS Если не ошибаюсь даже просто макроимена(не макрофункции) в С++ нежелательно использовать. Это связано, как минимум, с возможными проблемами при отладке с чего вдруг она будет отсутствовать в шаблоне? даже жёстче чем в FreeAndNil дельфийском будет проверка типов PPS: волков бояться, ... вы меня не так поняли. или я неправильно пояснил. эта фраза относится к макрофункции аналогичной шаблону ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 07:19 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
FishHookЕсли задача решается без метапрограммирования, то её нужно решать без метапрограммирования. ну, решите эту задачу для double * )) PS какая-то религия запрещает метапрограммирование? Очень интересно. Можно поподробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 09:36 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmcureenabВ "советах" читал, что ссылки следует всегда делать константными. Либо это вредные советы, либо ты их неправильно читал. Константные ссылки используют вместо передачи по значению для того, чтобы не создавать временные объекты и тратить время на копи-конструктор. Ссылки без const можно использовать ровно с той же целью. Тут суть не в оптимизации (к стати, если функции нужен инициализированный временный объект, то почему бы его не создать передавая параметр по значению), а в том чтобы программу было легче читать. Для функций: Код: plaintext 1. 2. вызов выглядит одинаково: Код: plaintext 1. 2. Программист может ожидать, что и f1 и f2 не меняют y. Иного смысла в этом совете нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 11:02 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
mcureenabТут суть не в оптимизации (к стати, если функции нужен инициализированный временный объект, то почему бы его не создать передавая параметр по значению), а в том чтобы программу было легче читать.мы вторую страницу обсуждаем мега-функцию, удаляющую свой входной параметр и присваивающий ему NULL. Можете пояснить, каким боком к этому обсуждению относятся константные ссылки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 12:00 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
egorychmcureenabТут суть не в оптимизации (к стати, если функции нужен инициализированный временный объект, то почему бы его не создать передавая параметр по значению), а в том чтобы программу было легче читать.мы вторую страницу обсуждаем мега-функцию, удаляющую свой входной параметр и присваивающий ему NULL. Можете пояснить, каким боком к этому обсуждению относятся константные ссылки? Тем боком, что тут нужна не ссылка на указатель, а указатель на указатель. Так будет легче читать программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:06 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
mcureenabТем боком, что тут нужна не ссылка на указатель, а указатель на указатель. Так будет легче читать программу. Да ну? С какого это перепугу FreeAndNil(&var) читается легче чем FreeAndNil(var)? Не говоря уже о возможности злоупотреблений типа FreeAndNil((void*)12345). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:36 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
Автору использовать шаблон unique_ptr и т.п. Smart Pointers. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:49 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
mcureenabТем боком, что тут нужна не ссылка на указатель, а указатель на указатель. Так будет легче читать программу.легче читать программу будет, если перестать называть функции f1, f2, а давать им осмысленные имена, как справедливо отметил Dimitry Sibiryakov. mcureenabАвтору использовать шаблон unique_ptr и т.п. Smart Pointers.нуууу так не честно! эта фраза была заготовлена на 4ю страницу обсуждения тут люди загоняются на шаблон инлайн-функции из 2х строк, а вы им предлагаете полноценный шаблонный класс использовать, этож как код-то распухнет то у них, жуть же просто ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:56 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
egorychmcureenabАвтору использовать шаблон unique_ptr и т.п. Smart Pointers.нуууу так не честно! эта фраза была заготовлена на 4ю страницу обсуждения Ой. Простите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 14:11 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
mcureenabMasterZivтакая функция, разумеется, должна принимать ссылку на указатель, чтобы иметь возможность его обнулять. В "советах" читал, что ссылки следует всегда делать константными. Не в этом случае. Константные ссылки нужны когда объект по ссылке не меняется . В данном случае мы наоборот хотим его в функции менять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 14:32 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
egorychmcureenabТут суть не в оптимизации (к стати, если функции нужен инициализированный временный объект, то почему бы его не создать передавая параметр по значению), а в том чтобы программу было легче читать.мы вторую страницу обсуждаем мега-функцию, удаляющую свой входной параметр и присваивающий ему NULL. Можете пояснить, каким боком к этому обсуждению относятся константные ссылки? Таким же, как и макросы. Никаким. Искомая функция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. (могу наврать со static_cast<void*>(0) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 14:37 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
MasterZivegorychпропущено... мы вторую страницу обсуждаем мега-функцию, удаляющую свой входной параметр и присваивающий ему NULL. Можете пояснить, каким боком к этому обсуждению относятся константные ссылки? Таким же, как и макросы. Никаким. Искомая функция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. (могу наврать со static_cast<void*>(0) ) Да и nullptr тут тем же боком относится ))) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 15:32 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyДа и nullptr тут тем же боком относится ))) if - тоже лишний. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 15:34 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAnatoly MoskovskyДа и nullptr тут тем же боком относится ))) if - тоже лишний. По большому счету - да.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 15:51 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
MasterZivНе в этом случае. Константные ссылки нужны когда объект по ссылке не меняется . В данном случае мы наоборот хотим его в функции менять. Поэтому следует использовать указатель на указатель. Стандартный delete не меняет сам указатель. А твой Delete меняет. Не гоже, чтобы они одинаково выглядели. Код: plaintext 1. 2. Почему a обнулился? 8( Код: plaintext 1. 2. Тут все ясно. С самим a в Delete что то происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 16:01 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyDimitry Sibiryakovпропущено... if - тоже лишний. По большому счету - да.)) По большому счёту и вся функция лишняя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 16:46 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
mcureenabMasterZivНе в этом случае. Константные ссылки нужны когда объект по ссылке не меняется . В данном случае мы наоборот хотим его в функции менять. Поэтому следует использовать указатель на указатель. Стандартный delete не меняет сам указатель. А твой Delete меняет. Не гоже, чтобы они одинаково выглядели. Код: plaintext 1. 2. Почему a обнулился? 8( Код: plaintext 1. 2. Тут все ясно. С самим a в Delete что то происходит. Это уже давно никого не интересующие бредни, по-моему. Абсолютная дурость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 16:47 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
mcureenabСтандартный delete не меняет сам указатель. А твой Delete меняет. Не гоже, чтобы они одинаково выглядели.ну назови её не Delete, а clean, erase, destroy или как там ещё, хоть destroy_and_null(). Советы они такие советы. Особенно когда они начинаются со слов "никогда" )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 18:25 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
MasterZivАбсолютная дурость. она в изначальной постановке задачи - "Хочу сделать универсальную процедуру" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 21:21 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
Изопропил, умников полно, ты бы человеку помог мало ли как и что он назвал - процедура, макрос - понятно же что хочет Код: plaintext 1. в дельфи правда ссылка сначала зануляется, а потом удаляется объект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 07:43 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Изопропил, умников полно, ты бы человеку помог я и пытаюсь помочь - предлагаю дурью не маяться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 07:51 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
Изопропилkealon(Ruslan)Изопропил, умников полно, ты бы человеку помог я и пытаюсь помочь - предлагаю дурью не маяться для тебя может дурь, для кого-то нужная вещь с гарантией нормальной работы и уж куда удобнее чем лапша if-ов в деструкторе в популярных книгах по С++ PS: я вот в питоне делал объект который вызывает исключение при любых операциях с ним, кроме присвоения. никому кроме меня такого не требовалось, а я дня два убил на чуть больше 200 строчек кода пока сделал, ладно подмогли иначе ещё бы неизвестно сколько делал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 08:37 |
|
||
|
Процедура удаления любого объекта
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)для тебя может дурь, для кого-то нужная вещь с гарантией нормальной работы Никакой гарантии тут нет. Один указатель занулил, десять копий остались. Попытки удалить не динамический объект так же не исключены. Было бы так все шоколадно, со всякими умными указателями не заморачивались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 10:03 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39099145&tid=2018749]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 260ms |

| 0 / 0 |
