Skip to content
Snippets Groups Projects
  • Benjamin Morgan's avatar
    8d95cc1a
    Make GeoFacet a protected detail of GeoPolyhedron · 8d95cc1a
    Benjamin Morgan authored
    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, resolve this by making `GeoFacet` in
    `GeoPolyhedron.h` a protected implementation detail of `GeoPolyhedron`.
    Update friendship operators and use elsewhere for nesting.
    8d95cc1a
    History
    Make GeoFacet a protected detail of GeoPolyhedron
    Benjamin Morgan authored
    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, resolve this by making `GeoFacet` in
    `GeoPolyhedron.h` a protected implementation detail of `GeoPolyhedron`.
    Update friendship operators and use elsewhere for nesting.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
BooleanProcessor.src 67.58 KiB