1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0024023: Revamp the OCCT Handle -- handle

Macro defining Handle class is replaced by template class implementing the same concept (defined in Standard_Handle.hxx and Standard_Transient.hxx), opencascade::handle<>.

Header file Standard_DefineHandle.hxx becomes deprecated: the only useful macro DEFINE_STANDARD_RTTI is defined now in Standard_Type.hxx. Standard_DefineHandle.hxx is kept for compatibility, it defines macros previously used for definition of Handles and RTTI as empty. Macro DEFINE_STANDARD_HANDLE(C1,C2) is also kept for compatibility; now it expands to typedef "Handle_C1" to corresponding handle class.

Definitions of macro Handle() and STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_Handle.hxx (new file) and Standard_Type.hxx, respectively.

New template class NCollection_Shared added, allowing to define sub-class manipulated by handle, for any non-transient class.

Adaptations for compiling with GCC 4.7
This commit is contained in:
abv
2015-07-01 11:00:57 +03:00
parent e35db4162b
commit e7195ab476
23 changed files with 524 additions and 754 deletions

View File

@@ -72,7 +72,6 @@ NCollection_SparseArrayBase.cxx
NCollection_CellFilter.hxx
NCollection_CellFilterNDim.hxx
NCollection_Handle.hxx
NCollection_Handle.cxx
NCollection_Comparator.hxx
NCollection_QuickSort.hxx
@@ -88,3 +87,4 @@ NCollection_Vec4.hxx
NCollection_Mat4.hxx
NCollection_StlIterator.hxx
NCollection_Shared.hxx