Skip to content
Snippets Groups Projects

Make GeoFacet a protected detail of GeoPolyhedron

Merged Benjamin Morgan requested to merge bmorgan/GeoModel:odr-fixes-geomodelkernel into master

Compiling GeoModel with LTO enabled identified a One Definition Rule warning:

[100%] Linking CXX shared library libGeoModelKernel.so
.../GeoModel.git/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoFacet.h:24:7:
warning: type 'struct GeoFacet' violates the C++ One Definition Rule
[-Wodr]
   24 | class GeoFacet : public RCBase
      |       ^
.../GeoModel.git/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPolyhedron.h:168:7:
note: a type with different bases is defined in another translation unit
  168 | class GeoFacet
      |       ^
[100%] Built target GeoModelKernel

Following discussion in #77 (closed), resolve this by making GeoFacet in GeoPolyhedron.h a protected implementation detail of GeoPolyhedron. Update friendship operators and use elsewhere for nesting.

Fixes: #77 (closed)

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading