Default constructible geometries
Summary
This MR make some geometries default constructible. A default constructed geometry is typically empty/invalid and may not be used until a valid geometry is assigned to it. The reason to provide a default constructor is, e.g., to allow to store geometries in containers (more easily).
Notes
- Not all geometries are easy to make default constructible, e.g., the
MultiLinearGeometry
uses aConerStorage
the we have no control over. In thetest-multilineargeometry
this storage is defined as astd::reference_wrapper
that is not default constructible and so it not the whole multilinear geometry class. We could, for example, protect the default constructor to only be available if the storage is default constructible. Then it is the task of the user to fulfil this requirement if he/she wants to use a default constructible geometry.
Related issues
Edited by Simon Praetorius