7#ifndef KIS_POINTER_UTILS_H
8#define KIS_POINTER_UTILS_H
10#include <QSharedPointer>
11#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
26template <
class A,
template <
class C>
class List>
28 List<QSharedPointer<A>> newList;
29 Q_FOREACH(
A*
value, list) {
39template <
template <
class>
class Container,
class T>
42 Container<QWeakPointer<T> > result;
57template <
template <
class>
class Container,
class T>
59 bool allOrNothing =
true)
61 Container<QSharedPointer<T> > result;
64 if (!strong && allOrNothing) {
82template <
typename R,
typename T,
template <
typename U>
class Container>
87 Q_FOREACH(
const T &item, list) {
141 template <
typename U>
145 template <
typename D,
typename S>
147 return src.template dynamicCast<D>();
154 template <
typename U>
158 template <
typename D,
typename S>
167 template <
typename U>
171 template <
typename D,
typename S>
float value(const T *src, size_t ch)
qreal D(qreal t, const QPointF &P0, const QPointF &P1, const QPointF &P2, const QPointF &P3, const QPointF &p)
QSharedPointer< T > toQShared(T *ptr)
List< QSharedPointer< A > > listToQShared(const List< A * > list)
Container< R > implicitCastList(const Container< T > &list)
Container< QSharedPointer< T > > listWeakToStrong(const Container< QWeakPointer< T > > &container, bool allOrNothing=true)
Container< QWeakPointer< T > > listStrongToWeak(const Container< QSharedPointer< T > > &container)
T * removeSharedPointer(T *value)
static KisPinnedSharedPtr< D > dynamicCastSP(KisPinnedSharedPtr< S > src)
static KisSharedPtr< D > dynamicCastSP(KisSharedPtr< S > src)
static QSharedPointer< D > dynamicCastSP(QSharedPointer< S > src)