![Logo](tetiere_ht.jpg) |
DATAKIT API
V2025.1
|
|
Go to the documentation of this file. 1 #ifndef _UTIL_PTR_DTK_HPP_
2 #define _UTIL_PTR_DTK_HPP_
14 struct bool_conversion {
int for_bool;
int for_arg(); };
15 typedef int bool_conversion::* explicit_bool_arg;
17 #if !defined(DTK_NO_CXX11_NULLPTR) && !defined(DTK_NO_CXX11_DECLTYPE)
18 typedef decltype(
nullptr) nullptr_type;
19 #elif !defined(DTK_NO_CXX11_NULLPTR)
20 typedef std::nullptr_t nullptr_type;
22 typedef int (bool_conversion::*nullptr_type)();
63 #if !defined(DTK_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS)
66 operator dtk::detail::explicit_bool_arg() const
DTK_NOEXCEPT
69 return ptr_ ? &dtk::detail::bool_conversion::for_bool : dtk::detail::explicit_bool_arg(0);
78 #if !defined(DTK_NO_CXX11_RVALUE_REFERENCES)
100 template <
typename T2>
109 return T::DtkDynamicCast(p.operator ->());
126 o <<
"<Dtk_SmartPtr><Adr>" << d.
ptr_ <<
"</Adr><Val>";
128 o <<
"</Val></Dtk_SmartPtr>"<<std::endl;
132 return o<<
"<Dtk_SmartPtr><Adr>" << d.
ptr_ <<
"</Adr></Dtk_SmartPtr>"<<std::endl;
142 template <typename T>
147 if (--
ptr_->count_ == 0)
155 template <
typename T>
160 template <
typename T>
166 template <
typename T>
173 template <
typename T>
180 template <
typename T>
191 template <
typename T>
196 res = T::DtkDynamicCast( ptr_->Clone() );
202 template <
typename T>
209 template <
class T1,
class T2>
211 {
return x.get() == y.get(); }
213 template <
class T1,
class T2>
215 {
return !(x == y); }
217 template <
class T1,
class T2>
219 {
return x.get() < y.get(); }
221 template <
class T1,
class T2>
225 template <
class T1,
class T2>
229 template <
class T1,
class T2>
268 {
return !(x > dtk::detail::nullptr_type()); }
272 {
return !(dtk::detail::nullptr_type() > x); }
276 {
return !(x < dtk::detail::nullptr_type()); }
280 {
return !(dtk::detail::nullptr_type() < x); }
330 class Dtk_BuildingMaterial;
Dtk_SmartPtr< Dtk_Info > Dtk_InfoPtr
Handles a Dtk_Info object.
Definition: util_ptr_dtk.hpp:310
bool operator<=(const Dtk_SmartPtr< T1 > &x, const Dtk_SmartPtr< T2 > &y) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:222
Dtk_SmartPtr(T *p)
Definition: util_ptr_dtk.hpp:167
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
void Clear()
Resets the Dtk_SmartPtr content.
Definition: util_ptr_dtk.hpp:203
~Dtk_SmartPtr()
Definition: util_ptr_dtk.hpp:156
#define DTK_ASSERT(expr)
Definition: define.h:743
bool operator!=(const Dtk_SmartPtr< T1 > &x, const Dtk_SmartPtr< T2 > &y) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:214
This is the generic Info class.
Definition: util_ent_dtk.hpp:115
Dtk_SmartPtr< Dtk_Entity > Dtk_EntityPtr
Handles a Dtk_Entity object.
Definition: util_ptr_dtk.hpp:292
Dtk_bool IsNotNULL() const
Definition: util_ptr_dtk.hpp:119
Dtk_SmartPtr< Dtk_matrix > Dtk_matrixPtr
Handles a Dtk_matrix object.
Definition: util_ptr_dtk.hpp:298
bool operator<(const Dtk_SmartPtr< T1 > &x, const Dtk_SmartPtr< T2 > &y) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:218
bool operator>(const Dtk_SmartPtr< T1 > &x, const Dtk_SmartPtr< T2 > &y) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:226
Dtk_SmartPtr< Dtk_picture > Dtk_picturePtr
Definition: util_ptr_dtk.hpp:342
T * pointer
Definition: util_ptr_dtk.hpp:47
char Dtk_bool
Definition: define.h:725
Dtk_SmartPtr< Dtk_LineTypeDefinition > Dtk_LineTypeDefinitionPtr
Definition: util_ptr_dtk.hpp:349
pointer operator->() const DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:52
This is the Dtk_StoredInfo Class. The Dtk_StoredInfo object is used to store any information stored.
Definition: dtk_storedinfo.hpp:15
Dtk_SmartPtr< Dtk_RenderInfos > Dtk_RenderInfosPtr
Definition: util_ptr_dtk.hpp:323
This is the Dtk_RenderInfos Class. The Dtk_RenderInfosPtr object is used to store any informations ab...
Definition: dtk_render.hpp:277
Dtk_SmartPtr< Dtk_transfo > Dtk_transfoPtr
Handles a Dtk_transfo object.
Definition: util_ptr_dtk.hpp:304
This is the Dtk_Stream Class. The Dtk_Stream object is used to store any informations about stream fi...
Definition: dtk_stream.hpp:16
T element_type
Definition: util_ptr_dtk.hpp:46
element_type & operator*() const DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:58
Dtk_SmartPtr< Dtk_PhysicalMaterialInfos > Dtk_PhysicalMaterialInfosPtr
Handles a Dtk_PhysicalMaterialInfos object.
Definition: util_ptr_dtk.hpp:338
Dtk_SmartPtr< Dtk_StoredInfo > Dtk_StoredInfoPtr
Handles a Dtk_StoredInfo object.
Definition: util_ptr_dtk.hpp:316
This is the Dtk_OLEObject Class. The Dtk_OLEObject object is used to store any informations about Obj...
Definition: dtk_oleobject.hpp:21
void Clone(Dtk_SmartPtr< T > &out) const
Definition: util_ptr_dtk.hpp:192
bool operator>=(const Dtk_SmartPtr< T1 > &x, const Dtk_SmartPtr< T2 > &y) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:230
This class defines a picture.
Definition: dtk_picture.hpp:45
Dtk_SmartPtr< Dtk_OLEObject > Dtk_OLEObjectPtr
Handles a Dtk_OLEObject object.
Definition: util_ptr_dtk.hpp:357
Dtk_SmartPtr< Dtk_Stream > Dtk_StreamPtr
Handles a Dtk_Stream object.
Definition: util_ptr_dtk.hpp:364
This is the Dtk_LineTypeDefinition Class. The Dtk_LineTypeDefinition object is used to store any info...
Definition: dtk_line_type_definition.hpp:23
static Dtk_SmartPtr< T > DtkDynamicCast(const Dtk_SmartPtr< T2 > &p)
Definition: util_ptr_dtk.hpp:101
Dtk_SmartPtr & operator=(Dtk_SmartPtr &&p) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:84
Dtk_bool IsNULL() const
Definition: util_ptr_dtk.hpp:118
Definition: dtk_matrix.hpp:8
Dtk_SmartPtr< Dtk_Object > Dtk_ObjectPtr
Handles a Dtk_Object object.
Definition: util_ptr_dtk.hpp:286
Definition: util_ptr_dtk.hpp:37
pointer get() const DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:97
Definition: dtk_render.hpp:381
Definition: util_stl_dtk.hpp:982
friend std::ostream & operator<<(std::ostream &o, const Dtk_SmartPtr &d)
Definition: util_ptr_dtk.hpp:122
Definition: dtk_object.hpp:8
T * ptr_
Definition: util_ptr_dtk.hpp:50
Dtk_SmartPtr(const Dtk_SmartPtr< T > &p)
Definition: util_ptr_dtk.hpp:174
bool operator==(const Dtk_SmartPtr< T1 > &x, const Dtk_SmartPtr< T2 > &y) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:210
Dtk_KinFixPart represents the fixed part to simulate the mechanism.
Definition: util_kinematics_dtk.hpp:1499
Dtk_SmartPtr(Dtk_SmartPtr &&p) DTK_NOEXCEPT
Definition: util_ptr_dtk.hpp:79
#define DTK_NOEXCEPT
Definition: config.hpp:26
Dtk_SmartPtr< Dtk_BuildingMaterial > Dtk_BuildingMaterialPtr
Handles a Dtk_BuildingMaterial object.
Definition: util_ptr_dtk.hpp:330
Dtk_SmartPtr()
Definition: util_ptr_dtk.hpp:161
Definition: util_ent_dtk.hpp:329