Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Есть умные указатели, которые при выходе из области видимости удаляют объект. Но мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Другими словами, нужна обертка, у которой перегружены все операторы указателя + метод empty(), чтобы проверить валидность объекта. Можно обойтись без велосипедостроения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 17:59 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Любопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 18:19 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
maytonЛюбопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? Я хочу это использовать в собственном барьере синхронизации: с помощью этого механизма я пойму, что задача, унаследованная от QRunnable, выполнена и удалена. В Qt есть такое неудобство: QThreadPool позволяет дождаться заврешения всех задач, не разделяя их по подсистемам (поскольку работа идет через статический объект QGlobalInstance). А я хочу создать возможность для каждой подсистемы анализировать выполненность только своих задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 18:26 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLНо мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Не надо ничего анализировать. Либо у твоих объектов контролируемое время жизни, либо используется счётчик ссылок. Всё остальное - от лукавого. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:01 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЕсть умные указатели, которые при выходе из области видимости удаляют объект. Но мне не надо удалять объект, а всего- навсего передать объект в другую подсистему и периодически анализировать удалили там его или пока нет. Другими словами, нужна обертка, у которой перегружены все операторы указателя + метод empty(), чтобы проверить валидность объекта. Можно обойтись без велосипедостроения? Да. Это std::weak_ptr. Из std::shared_ptr копируете в weak_ptr. Пока объект существует, weak_ptr.lock() будет возвращать shared_ptr на него. Когда объект удален, то lock() вернет пустой shared_ptr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:14 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе надо ничего анализировать. Либо у твоих объектов контролируемое время жизни, либо используется счётчик ссылок. Всё остальное - от лукавого. Беда в том, что QThreadPool сам удаляет задачи. Я как-то попробовал написать delete для выполненной задачи и моя программа упала. А счетчики ссылок в умных указателях идут "в комплекте" с удалением объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:53 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyДа. Это std::weak_ptr. Из std::shared_ptr копируете в weak_ptr. Пока объект существует, weak_ptr.lock() будет возвращать shared_ptr на него. Когда объект удален, то lock() вернет пустой shared_ptr Тогда надо чтобы вторая подсистема работала с shared_ptr и не удаляла объект после окончания. А QThreadPool сам вызывает delete для задач, так что система упадет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:55 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Давайте по максимуму. Пускай все системы пишут с умными указателями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 19:59 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
maytonДавайте по максимуму. Пускай все системы пишут с умными указателями. Хотя, я не пробовал запаковывать задачу в shared_ptr и так скармливать QThreadPool: возможно он делает проверки типа и в этом случае не будет вызывать delete... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2018, 20:04 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
maytonЛюбопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? Интереснее будет если проанализировать, что указатель не empty(), то что дальше? Вот если прикоснуться к нему оператором разыменования... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 11:19 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL... передать объект в другую подсистему и периодически анализировать удалили там его или пока нет.... ИМХО - у Вас совсем ДРУГАЯ задача. Вам нужна система подписчиков на удаление-добавление-редактирование объекта. И вся недолга... удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 11:22 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
petravmaytonЛюбопытно. Если ты уже проанализировал .empty() и узнал что он пустой - какие твои действия дальше? Интереснее будет если проанализировать, что указатель не empty(), то что дальше? Вот если прикоснуться к нему оператором разыменования... :) Дальше надо ждать, передав процессорное время другим потокам. Зачем к нему чем- то касаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 12:32 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLДальше надо ждать, передав процессорное время другим потокам. Зачем к нему чем- то касаться? Я говорил в общем, а вы не поняли моей шутки. Я писал про то как в одном потоке указатель проверяется на неравенство nullptr. И из этого делаются необоснованные выводы, в то время как второй поток обнуляет наш указатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 13:46 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
petravЯ говорил в общем, а вы не поняли моей шутки. Я писал про то как в одном потоке указатель проверяется на неравенство nullptr. И из этого делаются необоснованные выводы, в то время как второй поток обнуляет наш указатель. Связка share_ptr-weak_ptr не имеет эту проблему. Но ТС не врубился как weak_ptr применить к его кейсу. Скорее всего он и вообще не понял еще чего он хочет добиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 14:32 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСкорее всего он и вообще не понял еще чего он хочет добиться. Он хочет пойти против системы, которая автоматически удаляет объекты после использования. А он хочет удалять всё собственными руками. Зачем - неизвестно, наверное шаблоны окаменели. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:20 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн хочет пойти против системы... Просто отличное начало! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:26 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн хочет пойти против системы, которая автоматически удаляет объекты после использования. А он хочет удалять всё собственными руками. Зачем - неизвестно, наверное шаблоны окаменели. Нет, я не хочу удалять руками. Система уже сама удаляет задачи, и я наоборот хочу предотвратить повтроное удаление задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:31 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
[/quot AlekseySQL] Система уже сама удаляет задачи, и я наоборот хочу предотвратить повтроное удаление задач. [/quot] Так в чём проблема-то? Передал задачу системе и забыл про неё. Система удалит её ровно один раз, после выполнения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 18:34 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТак в чём проблема-то? Передал задачу системе и забыл про неё. Система удалит её ровно один раз, после выполнения. + надо отследить, что задача выполнилась и удалилась. Поэтому топик называется: "Есть готовые обертки для указателей с проверкой на существование объекта?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 19:58 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL+ надо отследить, что задача выполнилась и удалилась. Не надо: удалится она сама. Как задача отрапортует о своём выполнении - не имеет ничего общего с сабжем и определяется по обстоятельствам. Насколько я знаю, в Qt принято посылать сигналы, но никто не мешает поместить результат в очередь, записать в файл или отослать почтовым голубем. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2018, 20:37 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе надо: удалится она сама. Как задача отрапортует о своём выполнении - не имеет ничего общего с сабжем и определяется по обстоятельствам. Насколько я знаю, в Qt принято посылать сигналы, но никто не мешает поместить результат в очередь, записать в файл или отослать почтовым голубем. Я хочу избежать кода в задачах, чтобы весь код распался на независимые подсистемы. Задачи должны не знать, что за ними следят :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 08:20 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Попробовал QThreadPool скормить задачу обернутую shared_ptr, а в очередь положить weak_ptr и получил ошибку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. Другими словами, QThreadPool написан так, что ему нельзя скормить умный указатель, а только саму задачу. Походу и с другими обертками он поступит также. Значит остается только посылать сигналы из деструктора задачи (что мне не нравится, потому что превращает мою гениальную программу в код- лапшу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 08:39 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Появилась новая проблема :) А что если QThreadPool перемещает задачи по памяти? Ведь я тогда не смогу идентифицировать задачу по совпадению указателя! Вот какой шаблон запуска задачи: Код: plaintext нет и намека на константность указателя! Робя, а есть в языке какие- то объекты гарантирующие свою уникальность в работающей программе (реализация ключей)? Можно конечно, набрасать класс выдающий последовательно целые номера, но хочется работать со стандартными объектами, чтобы другим было легко читать мой чудо- код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 09:08 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
Sysguid. Но он длинный. Можно просто глобальную atomic переменную и брать из нее последовательность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 09:40 |
|
||
|
Есть готовые обертки для указателей с проверкой на существование объекта?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLесть в языке какие- то объекты гарантирующие свою уникальность в работающей программе (реализация ключей)? Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 09:51 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39634524&tid=2017876]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 284ms |
| total: | 448ms |

| 0 / 0 |
