MantisBT - Community
View Issue Details
0028186Community[OCCT] OCCT:Foundation Classespublic2016-12-04 17:222017-09-29 16:31
guidovanhilst 
apn 
normalminor 
closedfixed 
WindowsVC++ 201064 bit
[OCCT] 7.0.0 
[OCCT] 7.2.0[OCCT] 7.2.0 
Not needed
0028186: Foundation Classes, NCollection_List - methods "Remove" and "Contains" prevent template usage
occ7.1

Template class NCollection_List now contains a "Remove" and "Contains" method witch require a "==" operator of the itemType, there a lot of classes that cannot be in a list anymore due to missing == operator

For example NCollection_List<gp_Pnt> (typedefed in QANCollection_ListOfPnt.hxx)

Other classes missing == operator are:

NCollection_List<Message_Msg>
NCollection_List<BOPAlgo_CheckResult>
NCollection_List<BOPTools_CoupleOfShape>
NCollection_List<IntTools_CurveRangeSample>
NCollection_List<IntTools_SurfaceRangeSample>
NCollection_List<IntSurf_PntOn2S>
NCollection_List<HLRAlgo_Interference>
NCollection_List<HLRAlgo_BiPoint>
NCollection_List<BRepOffset_Interval>

and lots of basic types in gp


#include "gp_Pnt.hxx"
#include "NCollection_List.hxx"

typedef NCollection_List<gp_Pnt> MyListOfPoints;
No tags attached.
related to 0027900closed kgv Open CASCADE Coding rules - drop redundant Name parameter from V3d_Viewer constructor 
Issue History
2016-12-04 17:22guidovanhilstNew Issue
2016-12-04 17:22guidovanhilstAssigned To => abv
2016-12-04 17:31guidovanhilstNote Added: 0061054
2016-12-05 08:37abvRelationship addedrelated to 0027900
2016-12-05 08:37abvAssigned Toabv => kgv
2016-12-05 08:37abvStatusnew => assigned
2016-12-05 10:41abvTarget Version => 7.3.0
2016-12-05 12:54kgvSummaryNCollection_List "Remove" and "Contains" methods => Foundation Classes, NCollection_List - methods "Remove" and "Contains" prevent template usage
2016-12-05 12:58gitNote Added: 0061068
2016-12-05 13:32kgvNote Added: 0061076
2016-12-05 13:32kgvAssigned Tokgv => abv
2016-12-05 13:32kgvStatusassigned => resolved
2016-12-05 13:58gitNote Added: 0061082
2016-12-05 13:59gitNote Added: 0061083
2016-12-05 15:08abvNote Added: 0061089
2016-12-05 15:08abvAssigned Toabv => bugmaster
2016-12-05 15:08abvStatusresolved => reviewed
2016-12-05 16:16mkvAssigned Tobugmaster => mkv
2016-12-06 15:26mkvNote Added: 0061144
2016-12-06 15:26mkvNote Added: 0061145
2016-12-06 15:26mkvAssigned Tomkv => kgv
2016-12-06 15:26mkvStatusreviewed => assigned
2016-12-06 15:27mkvTest case number => Not needed
2016-12-06 15:27mkvTarget Version7.3.0 => 7.2.0
2016-12-06 16:42gitNote Added: 0061148
2016-12-06 16:43kgvNote Added: 0061149
2016-12-06 16:43kgvAssigned Tokgv => bugmaster
2016-12-06 16:43kgvStatusassigned => resolved
2016-12-06 16:43kgvStatusresolved => reviewed
2016-12-06 17:09mkvAssigned Tobugmaster => mkv
2016-12-07 14:14mkvNote Added: 0061471
2016-12-07 14:15mkvNote Added: 0061472
2016-12-07 14:15mkvAssigned Tomkv => bugmaster
2016-12-07 14:15mkvStatusreviewed => tested
2016-12-09 16:46apnChangeset attached => occt master 2a79a1ae
2016-12-09 16:46apnAssigned Tobugmaster => apn
2016-12-09 16:46apnStatustested => verified
2016-12-09 16:46apnResolutionopen => fixed
2016-12-18 10:53gitNote Added: 0061807
2016-12-18 10:53gitNote Added: 0061808
2017-09-29 16:21aivFixed in Version => 7.2.0
2017-09-29 16:31aivStatusverified => closed

Notes
(0061054)
guidovanhilst   
2016-12-04 17:31   
error C2678: binary '==' : no operator found which takes a left-hand operand of type 'Bnd_Box' (or there is no acceptable conversion)
(0061068)
git   
2016-12-05 12:58   
Branch CR28186 has been created by kgv.

SHA-1: 092c966452cb6256c2371aa7617ca0366b3c08c6


Detailed log of new commits:

Author: kgv
Date: Mon Dec 5 12:57:27 2016 +0300

    0028186: Foundation Classes, NCollection_List - methods "Remove" and "Contains" prevent template usage
    
    ::Remove() and ::Contains() are now defined as template methods
    to allow using NCollection_List with types without quality operator.
(0061076)
kgv   
2016-12-05 13:32   
Patch is ready for review.
(0061082)
git   
2016-12-05 13:58   
Branch CR28186 has been updated forcibly by kgv.

SHA-1: 815c07d9bd45be050a197319e49df056df2e5e9e
(0061083)
git   
2016-12-05 13:59   
Branch CR28186 has been updated forcibly by kgv.

SHA-1: efedeca05c176b588c1f5a45992ba8a27b6f0db8
(0061089)
abv   
2016-12-05 15:08   
Reviewed, please test
(0061144)
mkv   
2016-12-06 15:26   
Dear BugMaster,
Branch CR28186 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms on Release mode.
SHA-1: efedeca05c176b588c1f5a45992ba8a27b6f0db8

There are following compilation errors:
Linux:
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28186-master/job/CR28186-master-OCCT-Debian70-64-opt-compile/1/parsed_console/ [^]
/dn54/builds/CR28186-master/Debian70-64-opt/OCCT/src/QANCollection/QANCollection_Stl.cxx:53:18: error: explicit instantiation of 'class NCollection_List<Bnd_Box>' in namespace '{anonymous}' (which does not enclose namespace '::') [-fpermissive]
Windows:
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28186-master/job/CR28186-master-OCCT-Windows-64-VC10-opt-compile/1/parsed_console/ [^]
1>D:/builds/CR28186-master/Windows-64-VC10-opt/OCCT/src/NCollection/NCollection_List.hxx(204): error C4519: default template arguments are only allowed on a class template
MacOS:
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28186-master/job/CR28186-master-OCCT-MacOS-opt-compile/1/parsed_console/ [^]
/Users/mnt/builds/CR28186-master/MacOS-opt/OCCT/src/QANCollection/QANCollection_Stl.cxx:53:18: error: explicit instantiation of 'NCollection_List' must occur at global scope
(0061145)
mkv   
2016-12-06 15:26   
Dear kgv,
Branch CR28186 has been rejected due to:
- compilation errors
(0061148)
git   
2016-12-06 16:42   
Branch CR28186_1 has been created by kgv.

SHA-1: 17748cd23d4a500485f7c3e4bcd788d058f849a5


Detailed log of new commits:

Author: kgv
Date: Mon Dec 5 12:57:27 2016 +0300

    0028186: Foundation Classes, NCollection_List - methods "Remove" and "Contains" prevent template usage
    
    ::Remove() and ::Contains() are now defined as template methods
    to allow using NCollection_List with types without quality operator.
(0061149)
kgv   
2016-12-06 16:43   
Please try patch in branch CR28186_1.
(0061471)
mkv   
2016-12-07 14:14   
Dear BugMaster,
Branch CR28186_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 17748cd23d4a500485f7c3e4bcd788d058f849a5

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 63 (63 on master)
Windows: 0 (0 on master)
MacOS : 1128

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 91462490 / 91466523 [-0.00%]
Total CPU difference: 22016.93000000024 / 21935.990000000187 [+0.37%]
products component :
Total MEMORY difference: 29849961 / 29803095 [+0.16%]
Total CPU difference: 5309.919999999974 / 5308.749999999961 [+0.02%]

Testing on Windows:
occt component :
Total MEMORY difference: 56939769 / 56948258 [-0.01%]
Total CPU difference: 20551.992942698613 / 20501.8074209986 [+0.24%]
products component :
Total MEMORY difference: 20859724 / 20808844 [+0.24%]
Total CPU difference: 5282.973864999973 / 5254.222880699978 [+0.55%]

There are no differences in images found by testdiff.
(0061472)
mkv   
2016-12-07 14:15   
Dear BugMaster,
Branch CR28186_1 is TESTED.
(0061807)
git   
2016-12-18 10:53   
Branch CR28186 has been deleted by kgv.

SHA-1: efedeca05c176b588c1f5a45992ba8a27b6f0db8
(0061808)
git   
2016-12-18 10:53   
Branch CR28186_1 has been deleted by kgv.

SHA-1: 17748cd23d4a500485f7c3e4bcd788d058f849a5