View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026549 | Open CASCADE | OCCT:Foundation Classes | public | 2015-08-11 22:59 | 2016-04-20 15:51 |
Reporter | Assigned To | ||||
Priority | normal | Severity | integration request | ||
Status | closed | Resolution | fixed | ||
Target Version | 7.0.0 | Fixed in Version | 7.0.0 | ||
Summary | 0026549: Provide move constructors and operators for basic classes | ||||
Description | C++11 introduces notion of rvalue references which can be used to avoid unnecessary copying of temporary objects, see http://www.artima.com/cppsource/rvalue.html Rvalue references are supported by VC++ 10 and above, and by GCC 4.3 and above, thus they can be used in modern OCCT (since 0024023). The first candidates for this improvement are Handles and collections. | ||||
Tags | No tags attached. | ||||
Test case number | |||||
|
Branch CR26549 has been created by abv. SHA-1: f04f725c49f684a3b7abd65d21b280b7b7c6e883 Detailed log of new commits: Author: abv Date: Tue Aug 11 23:01:05 2015 +0300 0026549: Provide move constructors and operators for basic classes Move constructor and operator added for opencascade::handle<> |
|
First version is pushed to CR26549. It provides move semantics for Handles. Though it does not give noticeable change in performance in tests, it reduces number of calls to Standard_Transient::IncrementRefCounter() methods of Handle, and thus is potentially useful (especially in multithreaded programs, as each call sets a lock). The measured numbers of calls are: | Operation | master | CR26549 | |----------------------------------| | DRAW start | 4075 | 4075 | | pload ALL | 137767 | 128967 | | bottle.tcl | 30749697 | 30440160 | |
|
Other classes for which move semantics would be useful are vector and matrix classes from math package. |
|
Related modification within CR27111_6 has been reviewed without remarks. Should be tested in scope of 0027111. |
|
Tested in framework of branch CR27111_6 |
|
Branch CR26549 has been deleted by kgv. SHA-1: f04f725c49f684a3b7abd65d21b280b7b7c6e883 |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-08-11 22:59 |
|
New Issue | |
2015-08-11 22:59 |
|
Assigned To | => abv |
2015-08-11 22:59 |
|
Relationship added | related to 0024023 |
2015-08-12 07:22 | git | Note Added: 0044006 | |
2015-08-12 07:28 |
|
Note Added: 0044007 | |
2016-01-22 19:32 |
|
Note Added: 0050080 | |
2016-01-23 14:12 |
|
Note Edited: 0050080 | |
2016-02-16 11:39 | kgv | Note Added: 0050798 | |
2016-02-16 11:39 | kgv | Assigned To | abv => bugmaster |
2016-02-16 11:39 | kgv | Status | new => resolved |
2016-02-16 11:39 | kgv | Status | resolved => reviewed |
2016-02-16 11:41 | kgv | Relationship added | related to 0027111 |
2016-02-19 10:34 | bugmaster | Status | reviewed => tested |
2016-02-19 10:38 | bugmaster | Note Added: 0050990 | |
2016-02-21 08:52 |
|
Changeset attached | => occt master 5d351a08 |
2016-02-21 08:52 |
|
Assigned To | bugmaster => abv |
2016-02-21 08:52 |
|
Status | tested => verified |
2016-02-21 08:52 |
|
Resolution | open => fixed |
2016-04-17 15:07 | git | Note Added: 0053254 | |
2016-04-20 15:42 |
|
Fixed in Version | => 7.0.0 |
2016-04-20 15:51 |
|
Status | verified => closed |