2016-01-20 2 views
3

Мне нужно использовать QSharedPointer для подсчета ссылок, но я буду использовать его в однопоточном приложении, поэтому я не хочу, чтобы накладные расходы на потоки (что я предполагаю, довольно дорого).QSharedPointer без накладных расходов?

Есть ли способ отключить безопасность потока или существует эквивалентный класс Qt, который предлагает только подсчет ссылок? Если нет, существуют ли автономные классы, которые не требуют, чтобы я включил большую библиотеку, например boost, или включил C++ 11?

+0

Возможно ['QSharedDataPointer'] (http://doc.qt.io/qt-5/qshareddatapointer.html) – NathanOliver

+0

@NathanOliver К сожалению, нет. Из документов: «QSharedDataPointer реализует подсчет ссылок на потоки» – sashoalm

+0

Я не думаю, что вы сможете уйти от этого. Даже boost и C++ 11 делают это. По крайней мере, доступ к основному указателю не является потокобезопасным, поэтому он заботится о большинстве служебных данных. – NathanOliver

ответ

0

Qt 5 имеет very clever realization of class QMutex. И он не должен использовать Synchronization Primitives ОС в однопоточных приложениях. Итак, я считаю, что использование интеллектуальных указателей Qt является хорошим решением.

Смежные вопросы