Open CASCADE Technology  7.3.0
Data Structures | Namespaces | Macros | Functions

Standard_Handle.hxx File Reference

#include <Standard_Address.hxx>
#include <Standard_Stream.hxx>
#include <Standard_Transient.hxx>
#include <type_traits>

Data Structures

struct  opencascade::is_base_but_not_same< T1, T2, Dummy >
 Trait yielding true if class T1 is base of T2 but not the same. More...
 
struct  opencascade::is_base_but_not_same< T1, T2, typename opencascade::std::enable_if< opencascade::std::is_same< T1, T2 >::value >::type >
 Explicit specialization of is_base_of trait to workaround the requirement of type to be complete when T1 and T2 are the same. More...
 
class  opencascade::handle< T >
 Intrusive smart pointer for use with Standard_Transient class and its descendants. More...
 

Namespaces

 opencascade
 Namespace opencascade is intended for low-level template classes and functions.
 
 opencascade::std
 Namespace opencascade::std includes templates from C++11 std namespace used by OCCT classes. These definitions are imported from std namespace, plus (on older compilers) from std::tr1, or implemented by custom code where neither std not std::tr1 provide necessary definitions.
 

Macros

#define Handle(Class)   opencascade::handle<Class>
 Define Handle() macro. More...
 
#define DEFINE_STANDARD_HANDLECLASS(C1, C2, BC)   class C1; typedef Handle(C1) Handle_##C1;
 For compatibility with previous versions of OCCT, define Handle_Class alias for opencascade::handle<Class>. More...
 
#define DEFINE_STANDARD_HANDLE(C1, C2)   DEFINE_STANDARD_HANDLECLASS(C1,C2,Standard_Transient)
 
#define DEFINE_STANDARD_PHANDLE(C1, C2)   DEFINE_STANDARD_HANDLECLASS(C1,C2,Standard_Persistent)
 

Functions

template<class T >
Standard_Integer HashCode (const Handle< T > &theHandle, const Standard_Integer theUpper)
 Global method HashCode(), for use in hash maps. More...
 

Macro Definition Documentation

◆ DEFINE_STANDARD_HANDLE

#define DEFINE_STANDARD_HANDLE (   C1,
  C2 
)    DEFINE_STANDARD_HANDLECLASS(C1,C2,Standard_Transient)

◆ DEFINE_STANDARD_HANDLECLASS

#define DEFINE_STANDARD_HANDLECLASS (   C1,
  C2,
  BC 
)    class C1; typedef Handle(C1) Handle_##C1;

For compatibility with previous versions of OCCT, define Handle_Class alias for opencascade::handle<Class>.

For other compilers, use simple typedef

◆ DEFINE_STANDARD_PHANDLE

#define DEFINE_STANDARD_PHANDLE (   C1,
  C2 
)    DEFINE_STANDARD_HANDLECLASS(C1,C2,Standard_Persistent)

◆ Handle

#define Handle (   Class)    opencascade::handle<Class>

Define Handle() macro.

Function Documentation

◆ HashCode()

template<class T >
Standard_Integer HashCode ( const Handle< T > &  theHandle,
const Standard_Integer  theUpper 
)
inline

Global method HashCode(), for use in hash maps.