View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026497 | Community | OCCT:Foundation Classes | public | 2015-07-30 01:58 | 2016-04-17 15:07 |
Reporter | Roman Lygin | Assigned To | bugmaster | ||
Priority | normal | Severity | integration request | ||
Status | closed | Resolution | won't fix | ||
Product Version | 7.0.0 | ||||
Summary | 0026497: Restore explicit hierarchy of handles | ||||
Description | Initial implementation of template-based handles introduced in 7.0 alpha used independent handle classes and upcast with the help of reinterpret_cast. The latter is unsafe - see discussion starting at http://dev.opencascade.org/index.php?q=node/1091#comment-607. Provided implementation restores explicit hierarchy and removes upcast operators. Additionally, DEFINE_STANDARD_HANDLECLASS macro restores forward declaration of class C1 in order to better preserve source compatibility of user classes written as follows: DEFINE_STANDARD_HANDLE(foo,bar) class foo : public bar { ... }; | ||||
Steps To Reproduce | N/A | ||||
Tags | No tags attached. | ||||
Test case number | |||||
|
Branch CR26497 has been created by Roman Lygin. SHA-1: b667253efa6ba8195ee1ed47b7ca1ec89bfb6678 Detailed log of new commits: Author: Roman Lygin Date: Thu Jul 30 02:00:20 2015 +0400 0026497: Restore explicit hierarchy of handles |
|
The patch does not compile; it is necessary to add #includes in many places to ensure that each class is defined where Handle to it is used. |
|
Roman, please give your opinion if this issue is still relevant, taking into account my remarks on the subject at http://dev.opencascade.org/index.php?q=node/1091#comment-626 |
|
We are currently having internal discussions on possible of course actions. Restoring a hierarchy would hardly be an option unless you decide this to restore yourself. One of the efforts is to enable upcast in the case of method overloads. |
|
Reassigning to our developer in charge of porting to 7.0. We discover significant broken source compatibility due to broken handle hierarchy as we build with earlier MS Visual Studios (vc10 and vc11) with cases like: void Foo (const Handle_Geom_Curve&); void Foo (const Handle_Geom_Surface&); .... Handle_Geom_BSplineSurface aBS; Foo (aBS); We will continue to experiment if restoring handles hierarchy is feasible as otherwise the damage is too dramatic. |
|
We spent a lot of time trying to return handles hierarchy, but this seems to be an unreachable goal, especially for old compilers. Thus it was decided to change the way into minimization the efforts needed to migrate to new handles system for old compilers. See related integration request 0027111. |
|
Branch CR26497 has been deleted by kgv. SHA-1: b667253efa6ba8195ee1ed47b7ca1ec89bfb6678 |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-07-30 01:58 | Roman Lygin | New Issue | |
2015-07-30 01:58 | Roman Lygin | Assigned To | => abv |
2015-07-30 01:58 | Roman Lygin | Relationship added | related to 0024023 |
2015-07-30 02:01 | git | Note Added: 0043687 | |
2015-07-30 02:01 | Roman Lygin | Status | new => resolved |
2015-07-30 02:01 | Roman Lygin | Steps to Reproduce Updated | |
2015-08-12 11:53 |
|
Note Added: 0044025 | |
2015-08-12 11:53 |
|
Assigned To | abv => Roman Lygin |
2015-08-12 11:53 |
|
Status | resolved => assigned |
2015-12-15 15:51 |
|
Note Added: 0049161 | |
2015-12-15 15:51 |
|
Status | assigned => feedback |
2015-12-18 11:50 |
|
Target Version | 7.0.0 => 7.1.0 |
2015-12-23 17:49 | Roman Lygin | Note Added: 0049533 | |
2016-01-15 13:46 | Roman Lygin | Assigned To | Roman Lygin => AlexanderZashivalov |
2016-01-15 14:05 | Roman Lygin | Note Added: 0049888 | |
2016-01-15 14:05 | Roman Lygin | Status | feedback => assigned |
2016-01-21 16:30 | Roman Lygin | Relationship added | related to 0026377 |
2016-01-21 16:31 | Roman Lygin | Relationship deleted | related to 0026377 |
2016-01-25 20:28 | AlexanderZashivalov | Relationship added | related to 0027111 |
2016-01-25 20:32 | AlexanderZashivalov | Note Added: 0050120 | |
2016-02-29 10:57 | AlexanderZashivalov | Assigned To | AlexanderZashivalov => bugmaster |
2016-02-29 11:06 |
|
Status | assigned => closed |
2016-02-29 11:06 |
|
Resolution | open => won't fix |
2016-02-29 11:06 |
|
Target Version | 7.1.0 => |
2016-04-17 15:07 | git | Note Added: 0053253 |