View Issue Details

IDProjectCategoryView StatusLast Update
0028186CommunityOCCT:Foundation Classespublic2017-09-29 16:31
Reporterguidovanhilst Assigned Toapn  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2010 
Product Version7.0.0 
Target Version7.2.0Fixed in Version7.2.0 
Summary0028186: Foundation Classes, NCollection_List - methods "Remove" and "Contains" prevent template usage
Descriptionocc7.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


Steps To Reproduce#include "gp_Pnt.hxx"
#include "NCollection_List.hxx"

typedef NCollection_List<gp_Pnt> MyListOfPoints;
TagsNo tags attached.
Test case numberNot needed

Relationships

related to 0027900 closedkgv Open CASCADE Coding rules - drop redundant Name parameter from V3d_Viewer constructor 

Activities

guidovanhilst

2016-12-04 17:31

developer   ~0061054

error C2678: binary '==' : no operator found which takes a left-hand operand of type 'Bnd_Box' (or there is no acceptable conversion)

git

2016-12-05 12:58

administrator   ~0061068

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.

kgv

2016-12-05 13:32

developer   ~0061076

Patch is ready for review.

git

2016-12-05 13:58

administrator   ~0061082

Branch CR28186 has been updated forcibly by kgv.

SHA-1: 815c07d9bd45be050a197319e49df056df2e5e9e

git

2016-12-05 13:59

administrator   ~0061083

Branch CR28186 has been updated forcibly by kgv.

SHA-1: efedeca05c176b588c1f5a45992ba8a27b6f0db8

abv

2016-12-05 15:08

manager   ~0061089

Reviewed, please test

mkv

2016-12-06 15:26

tester   ~0061144

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

mkv

2016-12-06 15:26

tester   ~0061145

Dear kgv,
Branch CR28186 has been rejected due to:
- compilation errors

git

2016-12-06 16:42

administrator   ~0061148

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.

kgv

2016-12-06 16:43

developer   ~0061149

Please try patch in branch CR28186_1.

mkv

2016-12-07 14:14

tester   ~0061471

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.

mkv

2016-12-07 14:15

tester   ~0061472

Dear BugMaster,
Branch CR28186_1 is TESTED.

git

2016-12-18 10:53

administrator   ~0061807

Branch CR28186 has been deleted by kgv.

SHA-1: efedeca05c176b588c1f5a45992ba8a27b6f0db8

git

2016-12-18 10:53

administrator   ~0061808

Branch CR28186_1 has been deleted by kgv.

SHA-1: 17748cd23d4a500485f7c3e4bcd788d058f849a5

Related Changesets

occt: master 2a79a1ae

2016-12-05 09:57:27

kgv


Committer: apn Details Diff
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.
Affected Issues
0028186
mod - src/NCollection/NCollection_List.hxx Diff File
mod - src/NCollection/NCollection_StlIterator.hxx Diff File

Issue History

Date Modified Username Field Change
2016-12-04 17:22 guidovanhilst New Issue
2016-12-04 17:22 guidovanhilst Assigned To => abv
2016-12-04 17:31 guidovanhilst Note Added: 0061054
2016-12-05 08:37 abv Relationship added related to 0027900
2016-12-05 08:37 abv Assigned To abv => kgv
2016-12-05 08:37 abv Status new => assigned
2016-12-05 10:41 abv Target Version => 7.3.0
2016-12-05 12:54 kgv Summary NCollection_List "Remove" and "Contains" methods => Foundation Classes, NCollection_List - methods "Remove" and "Contains" prevent template usage
2016-12-05 12:58 git Note Added: 0061068
2016-12-05 13:32 kgv Note Added: 0061076
2016-12-05 13:32 kgv Assigned To kgv => abv
2016-12-05 13:32 kgv Status assigned => resolved
2016-12-05 13:58 git Note Added: 0061082
2016-12-05 13:59 git Note Added: 0061083
2016-12-05 15:08 abv Note Added: 0061089
2016-12-05 15:08 abv Assigned To abv => bugmaster
2016-12-05 15:08 abv Status resolved => reviewed
2016-12-05 16:16 mkv Assigned To bugmaster => mkv
2016-12-06 15:26 mkv Note Added: 0061144
2016-12-06 15:26 mkv Note Added: 0061145
2016-12-06 15:26 mkv Assigned To mkv => kgv
2016-12-06 15:26 mkv Status reviewed => assigned
2016-12-06 15:27 mkv Test case number => Not needed
2016-12-06 15:27 mkv Target Version 7.3.0 => 7.2.0
2016-12-06 16:42 git Note Added: 0061148
2016-12-06 16:43 kgv Note Added: 0061149
2016-12-06 16:43 kgv Assigned To kgv => bugmaster
2016-12-06 16:43 kgv Status assigned => resolved
2016-12-06 16:43 kgv Status resolved => reviewed
2016-12-06 17:09 mkv Assigned To bugmaster => mkv
2016-12-07 14:14 mkv Note Added: 0061471
2016-12-07 14:15 mkv Note Added: 0061472
2016-12-07 14:15 mkv Assigned To mkv => bugmaster
2016-12-07 14:15 mkv Status reviewed => tested
2016-12-09 16:46 apn Changeset attached => occt master 2a79a1ae
2016-12-09 16:46 apn Assigned To bugmaster => apn
2016-12-09 16:46 apn Status tested => verified
2016-12-09 16:46 apn Resolution open => fixed
2016-12-18 10:53 git Note Added: 0061807
2016-12-18 10:53 git Note Added: 0061808
2017-09-29 16:21 aiv Fixed in Version => 7.2.0
2017-09-29 16:31 aiv Status verified => closed