View Issue Details

IDProjectCategoryView StatusLast Update
0031214Open CASCADEOCCT:Codingpublic2021-08-24 14:59
ReportertizmayloAssigned Tokgv  
PrioritynormalSeverityminor 
Status newResolutionopen 
Target Version7.7.0 
Summary0031214: Coding - minor improvements of opencascade::handle class template
Description
  1. A strange compilation error is issued when the template argument T of the opencascade::handle<T> class template is not derived from Standard_Transient. It would be nice to add a static assertion to the opencascade::handle<T> class template to make error message clearer.
  2. A strange behavior of the opencascade::handle<T> class template is observed with incomplete type T. It looks like that no compilation error is issued even when destructor of opencascade::handle<T>::~handle is called for incomplete T.
  3. It may be useful to add overloads that take an object of the type std::nullptr_t as an argument for constructor, assignment operator and reset() method of the opencascade::handle<T> class template using compilers that support C++11 and higher. nullptr may be used as a default argument for such overload of the reset() method.
  4. There is no operator ->* in the opencascade::handle<T> class template. It may be useful in operations with pointers to methods of the class T. Currently the following code
    (aHandle.get()->*aPointerToMethod)(aMethodArguments...);
    should be written instead of
    (aHandle->*aPointerToMethod)(aMethodArguments...);
TagsNo tags attached.
Test case number

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2019-12-03 12:23 tizmaylo New Issue
2019-12-03 12:23 tizmaylo Assigned To => kgv
2019-12-03 12:23 tizmaylo Description Updated
2020-09-11 15:34 utverdov Target Version 7.5.0 => 7.6.0
2021-08-24 14:59 kgv Target Version 7.6.0 => 7.7.0