CGAL Released, Computational Geometry Algorithms Library -- Laurent Rineau
The CGAL Open Source Project is pleased to announce the recent releases of CGAL versions 5.5.5, 5.6.2, 6.0, and 6.0.1.
New CGAL versions: 5.5.5, 5.6.2, 6.0, and 6.0.1
by Laurent Rineau
From the article
CGAL version 6.0
CGAL version 6.0 was released on September 27, 2024. Following the discovery of early issues, version 6.0.1 was subsequently released on October 22, 2024.
This version is a major release, with many new features and improvements.
General changes
- C++17 Requirement: CGAL 6.0 requires a C++17 compatible compiler.
- GMP/MPFR Optional: GMP/MPFR are no longer mandatory; Boost.Multiprecision can be used.
- Qt6 Demos: All demos are now based on Qt6.
- Polyhedral Surface: The demo has been renamed to “CGAL Lab” and moved to its own directory in
demo/Lab/.New Packages
- Kinetic Space Partition: Partition of the space from planar input shapes.
- Kinetic Surface Reconstruction: Reconstructs surfaces from point clouds.
- Basic Viewer: Interactive visualization for various CGAL packages.
- Polygon Repair: Algorithms to repair 2D polygons and multipolygons.
Breaking Changes
- CMake Changes:
UseCGAL.cmakeremoved; useCGAL::CGALtarget instead.- Kernel: Replaced
boost::variantwithstd::variantandboost::optionalwithstd::optionalin the intersection functions.Enhancements
- AABB Tree: Now supports 2D and 3D primitives.

Exploring how different languages solve the same problem often reveals interesting contrasts, especially when it comes to implementing powerful features like reflection. While C++26 aims to introduce introspection and code generation via P2996 and P3294, Rust’s approach using its derive macros offers a mature solution for code generation, even without introspection, highlighting different philosophies in language design and their practical applications.
In C++20, the standard library introduced new synchronization primitives: std::latch and std::barrier. These are the utilities designed to coordinate between concurrent threads.
When you transition from older C++ standards like C++11 or C++14 to the latest C++17 and C++20 it can be a tough journey. It's essential for writing clean and easy-to-maintain code, but many developers find the process challenging.