This page relates only to C++ and Python programmers.
Over time, Regina makes changes and improvements to its C++ and Python interfaces. This page explains how you will need to update your C++ code and/or Python scripts to work with the latest version of Regina.
Where possible, the old classes and routines that you should no longer use have been kept but marked as deprecated. These old deprecated classes and routines will be kept until the next major version (Regina 8.0), so that there is a comfortable transition period where your old code will still work. All of this deprecated code will be removed in Regina 8.0, whenever that may be.
If you have older code (from 2021 or earlier), you can also read the separate pages on:
Some general rules have been applied throughout the API:
In addition to the general changes outlined above, there are also specific changes to individual headers, classes, functions and/or constants. These are listed in the table below, along with suggestions for how you should change your code. Any changes in the behaviour of these routines or classes are noted in the comments column.
The blue cells indicate code that is still present in Regina, but is now deprecated (i.e., marked for removal in a future release). The red cells indicate code that has already been removed from Regina.
|Classes, Enums and Type Aliases|
|DegreeLessThan, DegreeGreaterThan||C++ lambda||These classes were trivial, and nowadays a one-line lambda can do the same job.|
|FacetPairing<3>::followChain(size_t&, ...)||FacetPairing<3>::followChain(ssize_t&, ...)|
tri = iso(tri)
|NormalHypersurface::doubleHypersurface()||surface * 2 or surface *= 2|
|NormalSurface::doubleSurface()||surface * 2 or surface *= 2|
Removed in Regina 7.2
|Triangulation<3>::recogniseHandlebody()||This returns an integer genus, not a boolean, and so the name has been changed to avoid any misinterpretation.|
|Regina uses British English consistently throughout its API.|
|GCD and LCM are now offered as part of the C++17 standard.|
Back to main page ...