Skip to content

V18 - #1314

Draft
BenPinet wants to merge 53 commits into
nextfrom
v18
Draft

V18#1314
BenPinet wants to merge 53 commits into
nextfrom
v18

Conversation

@BenPinet

@BenPinet BenPinet commented Aug 4, 2026

Copy link
Copy Markdown
Member

No description provided.

BotellaA and others added 9 commits July 23, 2026 13:40
BREAKING CHANGE: create_attribute now requires an additional parameter to specify the no-value property.
…rty_to_attribute

feat(Attributes): add no-value property support
BREAKING CHANGE: change members name in Logger struct
BREAKING CHANGE: rename Sign struct to SIGN
…rn_with_warning

fix(Logger): replace warn with warning
@BenPinet
BenPinet requested a review from BotellaA August 4, 2026 09:34
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy (v20.1.8) reports: 3223 concern(s)
  • bindings/python/src/basic/attribute.cpp:34:10: warning: [misc-use-internal-linkage]

    function 'python_attribute_class' can be made static or moved into an anonymous namespace to enforce internal linkage

       34 |     void python_attribute_class(
          |          ^
          |     static 
  • bindings/python/src/basic/attribute.cpp:67:10: warning: [misc-use-internal-linkage]

    function 'python_attribute_values_class' can be made static or moved into an anonymous namespace to enforce internal linkage

       67 |     void python_attribute_values_class(
          |          ^
          |     static 
  • bindings/python/src/basic/attribute.cpp:79:10: warning: [misc-use-internal-linkage]

    function 'define_attributes' can be made static or moved into an anonymous namespace to enforce internal linkage

       79 |     void define_attributes( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/basic/attribute_manager.cpp:36:10: warning: [cppcoreguidelines-avoid-non-const-global-variables]

    variable 'python_attribute_class' is non-const and globally accessible, consider making it const

       36 |     void python_attribute_class( pybind11::class_< AttributeManager >& manager,
          |          ^
  • bindings/python/src/basic/attribute_manager.cpp:36:10: warning: [misc-use-internal-linkage]

    variable 'python_attribute_class' can be made static or moved into an anonymous namespace to enforce internal linkage

       36 |     void python_attribute_class( pybind11::class_< AttributeManager >& manager,
          |          ^
          |     static 
  • bindings/python/src/basic/attribute_manager.cpp:101:10: warning: [misc-use-internal-linkage]

    function 'define_attribute_manager' can be made static or moved into an anonymous namespace to enforce internal linkage

      101 |     void define_attribute_manager( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/geometry/sign.cpp:33:10: warning: [misc-use-internal-linkage]

    function 'define_sign' can be made static or moved into an anonymous namespace to enforce internal linkage

       33 |     void define_sign( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/mesh/helpers/geometrical_operations_on_mesh.cpp:56:10: warning: [misc-use-internal-linkage]

    function 'define_geometrical_operations_on_mesh' can be made static or moved into an anonymous namespace to enforce internal linkage

       56 |     void define_geometrical_operations_on_mesh( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/block_collections_builder.cpp:42:10: warning: [misc-use-internal-linkage]

    function 'define_block_collections_builder' can be made static or moved into an anonymous namespace to enforce internal linkage

       42 |     void define_block_collections_builder( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/block_collections_builder.cpp:44:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       44 |         PYTHON_BLOCK_COLLECTIONS_BUILDER( 2 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/block_collections_builder.cpp:33:35: note: expanded from macro 'PYTHON_BLOCK_COLLECTIONS_BUILDER'
       33 |         "BlockCollectionsBuilder" + std::to_string( dimension ) + "D";         \
          |                                   ^
  • bindings/python/src/model/mixin/builder/block_collections_builder.cpp:45:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       45 |         PYTHON_BLOCK_COLLECTIONS_BUILDER( 3 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/block_collections_builder.cpp:33:35: note: expanded from macro 'PYTHON_BLOCK_COLLECTIONS_BUILDER'
       33 |         "BlockCollectionsBuilder" + std::to_string( dimension ) + "D";         \
          |                                   ^
  • bindings/python/src/model/mixin/builder/corner_collections_builder.cpp:42:10: warning: [misc-use-internal-linkage]

    function 'define_corner_collections_builder' can be made static or moved into an anonymous namespace to enforce internal linkage

       42 |     void define_corner_collections_builder( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/corner_collections_builder.cpp:44:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       44 |         PYTHON_CORNER_COLLECTIONS_BUILDER( 2 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/corner_collections_builder.cpp:33:36: note: expanded from macro 'PYTHON_CORNER_COLLECTIONS_BUILDER'
       33 |         "CornerCollectionsBuilder" + std::to_string( dimension ) + "D";        \
          |                                    ^
  • bindings/python/src/model/mixin/builder/corner_collections_builder.cpp:45:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       45 |         PYTHON_CORNER_COLLECTIONS_BUILDER( 3 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/corner_collections_builder.cpp:33:36: note: expanded from macro 'PYTHON_CORNER_COLLECTIONS_BUILDER'
       33 |         "CornerCollectionsBuilder" + std::to_string( dimension ) + "D";        \
          |                                    ^
  • bindings/python/src/model/mixin/builder/corners_builder.cpp:45:10: warning: [misc-use-internal-linkage]

    function 'define_corners_builder' can be made static or moved into an anonymous namespace to enforce internal linkage

       45 |     void define_corners_builder( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/corners_builder.cpp:47:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       47 |         PYTHON_CORNERS_BUILDER( 2 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/corners_builder.cpp:35:26: note: expanded from macro 'PYTHON_CORNERS_BUILDER'
       35 |         "CornersBuilder" + std::to_string( dimension ) + "D";                  \
          |                          ^
  • bindings/python/src/model/mixin/builder/corners_builder.cpp:48:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       48 |         PYTHON_CORNERS_BUILDER( 3 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/corners_builder.cpp:35:26: note: expanded from macro 'PYTHON_CORNERS_BUILDER'
       35 |         "CornersBuilder" + std::to_string( dimension ) + "D";                  \
          |                          ^
  • bindings/python/src/model/mixin/builder/line_collections_builder.cpp:41:10: warning: [misc-use-internal-linkage]

    function 'define_line_collections_builder' can be made static or moved into an anonymous namespace to enforce internal linkage

       41 |     void define_line_collections_builder( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/line_collections_builder.cpp:43:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       43 |         PYTHON_LINE_COLLECTIONS_BUILDER( 2 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/line_collections_builder.cpp:33:34: note: expanded from macro 'PYTHON_LINE_COLLECTIONS_BUILDER'
       33 |         "LineCollectionsBuilder" + std::to_string( dimension ) + "D";          \
          |                                  ^
  • bindings/python/src/model/mixin/builder/line_collections_builder.cpp:44:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       44 |         PYTHON_LINE_COLLECTIONS_BUILDER( 3 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/line_collections_builder.cpp:33:34: note: expanded from macro 'PYTHON_LINE_COLLECTIONS_BUILDER'
       33 |         "LineCollectionsBuilder" + std::to_string( dimension ) + "D";          \
          |                                  ^
  • bindings/python/src/model/mixin/builder/lines_builder.cpp:44:10: warning: [misc-use-internal-linkage]

    function 'define_lines_builder' can be made static or moved into an anonymous namespace to enforce internal linkage

       44 |     void define_lines_builder( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/lines_builder.cpp:46:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       46 |         PYTHON_LINES_BUILDER( 2 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/lines_builder.cpp:35:24: note: expanded from macro 'PYTHON_LINES_BUILDER'
       35 |         "LinesBuilder" + std::to_string( dimension ) + "D";                    \
          |                        ^
  • bindings/python/src/model/mixin/builder/lines_builder.cpp:47:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       47 |         PYTHON_LINES_BUILDER( 3 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/lines_builder.cpp:35:24: note: expanded from macro 'PYTHON_LINES_BUILDER'
       35 |         "LinesBuilder" + std::to_string( dimension ) + "D";                    \
          |                        ^
  • bindings/python/src/model/mixin/builder/model_boundaries_builder.cpp:41:10: warning: [misc-use-internal-linkage]

    function 'define_model_boundaries_builder' can be made static or moved into an anonymous namespace to enforce internal linkage

       41 |     void define_model_boundaries_builder( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/model_boundaries_builder.cpp:43:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       43 |         PYTHON_MODEL_BOUNDARIES_BUILDER( 2 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/model_boundaries_builder.cpp:33:34: note: expanded from macro 'PYTHON_MODEL_BOUNDARIES_BUILDER'
       33 |         "ModelBoundariesBuilder" + std::to_string( dimension ) + "D";          \
          |                                  ^
  • bindings/python/src/model/mixin/builder/model_boundaries_builder.cpp:44:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       44 |         PYTHON_MODEL_BOUNDARIES_BUILDER( 3 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/model_boundaries_builder.cpp:33:34: note: expanded from macro 'PYTHON_MODEL_BOUNDARIES_BUILDER'
       33 |         "ModelBoundariesBuilder" + std::to_string( dimension ) + "D";          \
          |                                  ^
  • bindings/python/src/model/mixin/builder/surface_collections_builder.cpp:42:10: warning: [misc-use-internal-linkage]

    function 'define_surface_collections_builder' can be made static or moved into an anonymous namespace to enforce internal linkage

       42 |     void define_surface_collections_builder( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/model/mixin/builder/surface_collections_builder.cpp:44:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       44 |         PYTHON_SURFACE_COLLECTIONS_BUILDER( 2 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/surface_collections_builder.cpp:33:37: note: expanded from macro 'PYTHON_SURFACE_COLLECTIONS_BUILDER'
       33 |         "SurfaceCollectionsBuilder" + std::to_string( dimension ) + "D";       \
          |                                     ^
  • bindings/python/src/model/mixin/builder/surface_collections_builder.cpp:45:9: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       45 |         PYTHON_SURFACE_COLLECTIONS_BUILDER( 3 );
          |         ^
    /__w/OpenGeode/OpenGeode/bindings/python/src/model/mixin/builder/surface_collections_builder.cpp:33:37: note: expanded from macro 'PYTHON_SURFACE_COLLECTIONS_BUILDER'
       33 |         "SurfaceCollectionsBuilder" + std::to_string( dimension ) + "D";       \
          |                                     ^
  • include/geode/basic/attribute.hpp:52:11: warning: [cppcoreguidelines-special-member-functions]

    class 'AttributeBase' defines a default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator

       52 |     class AttributeBase : public Identifier
          |           ^
  • include/geode/basic/attribute.hpp:82:27: warning: [hicpp-move-const-arg]

    std::move of the variable 'new_properties' of the trivially-copyable type 'AttributeProperties' has no effect; remove std::move()

       82 |             properties_ = std::move( new_properties );
          |                           ^~~~~~~~~~                ~
  • include/geode/basic/attribute.hpp:156:28: warning: [hicpp-move-const-arg]

    std::move of the variable 'properties' of the trivially-copyable type 'AttributeProperties' has no effect; remove std::move()

      156 |             : properties_( std::move( properties ) )
          |                            ^~~~~~~~~~            ~
  • include/geode/basic/attribute_utils.hpp:148:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ATTRIBUTE_LINEAR_INTERPOLATION' used; consider a 'constexpr' template function

      148 | #define IMPLICIT_ATTRIBUTE_LINEAR_INTERPOLATION( Type )                        \
          |         ^
  • include/geode/basic/attribute_utils.hpp:182:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ARRAY_ATTRIBUTE_LINEAR_INTERPOLATION' used; consider a 'constexpr' template function

      182 | #define IMPLICIT_ARRAY_ATTRIBUTE_LINEAR_INTERPOLATION( Type )                  \
          |         ^
  • include/geode/basic/attribute_utils.hpp:261:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_GENERIC_ATTRIBUTE_CONVERSION' used; consider a 'constexpr' template function

      261 | #define IMPLICIT_GENERIC_ATTRIBUTE_CONVERSION( Type )                          \
          |         ^
  • include/geode/basic/attribute_utils.hpp:297:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ARRAY_GENERIC_ATTRIBUTE_CONVERSION' used; consider a 'constexpr' template function

      297 | #define IMPLICIT_ARRAY_GENERIC_ATTRIBUTE_CONVERSION( Type )                    \
          |         ^
  • include/geode/basic/bitsery_archive.hpp:51:17: warning: [performance-enum-size]

    enum 'BITSERY' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

       51 |     enum struct BITSERY
          |                 ^
  • include/geode/basic/bitsery_archive.hpp:100:33: warning: [readability-identifier-length]

    parameter name 's' is too short, expected at least 3 characters

      100 |     void serialize( Serializer &s, absl::InlinedVector< T, N > &obj )
          |                                 ^
  • include/geode/basic/bitsery_archive.hpp:115:33: warning: [readability-identifier-length]

    parameter name 's' is too short, expected at least 3 characters

      115 |     void serialize( Serializer &s, absl::FixedArray< T, N > &obj )
          |                                 ^
  • include/geode/basic/bitsery_archive.hpp:121:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'SERIALIZE_BITSERY_ARCHIVE' used; consider a 'constexpr' template function

      121 | #define SERIALIZE_BITSERY_ARCHIVE( EXPORT, TYPE )                              \
          |         ^
  • include/geode/basic/bitsery_archive.hpp:122:14: warning: [bugprone-macro-parentheses]

    macro argument should be enclosed in parentheses

      122 |     template EXPORT void TYPE::serialize< geode::Serializer >(                 \
          |              ^
          |              (     )
  • include/geode/basic/bitsery_archive.hpp:124:14: warning: [bugprone-macro-parentheses]

    macro argument should be enclosed in parentheses

      124 |     template EXPORT void TYPE::serialize< geode::Deserializer >(               \
          |              ^
          |              (     )
  • include/geode/basic/bitsery_archive.hpp:127:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'BITSERY_CLASS_NAME' used; consider a 'constexpr' template function

      127 | #define BITSERY_CLASS_NAME( Type, Name )                                       \
          |         ^
  • include/geode/basic/cached_value.hpp:38:11: warning: [cppcoreguidelines-special-member-functions]

    class 'CachedValue' defines a copy constructor, a copy assignment operator, a move constructor and a move assignment operator but does not define a destructor

       38 |     class CachedValue
          |           ^
  • include/geode/basic/cached_value.hpp:43:22: warning: [modernize-type-traits]

    use c++14 style type templates

       43 |             typename std::add_pointer< ReturnType( Args... ) >::type;
          |             ~~~~~~~~ ^                                        ~~~~~~
          |                                      _t
  • include/geode/basic/cached_value.hpp:48:13: warning: [cppcoreguidelines-prefer-member-initializer]

    'value_' should be initialized in a member initializer of the constructor

       46 |         CachedValue( const CachedValue& other )
          |                                                
          |                                                 : value_(other.value_)
       47 |         {
       48 |             value_ = other.value_;
          |             ^~~~~~~~~~~~~~~~~~~~~~
  • include/geode/basic/cached_value.hpp:49:13: warning: [cppcoreguidelines-prefer-member-initializer]

    'computed_' should be initialized in a member initializer of the constructor

       46 |         CachedValue( const CachedValue& other )
          |                                                
          |                                                , computed_(other.computed_.load())
       47 |         {
       48 |             value_ = other.value_;
       49 |             computed_ = other.computed_.load();
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/basic/cached_value.hpp:53:13: warning: [cppcoreguidelines-prefer-member-initializer]

    'value_' should be initialized in a member initializer of the constructor

       51 |         CachedValue( CachedValue&& other ) noexcept
          |                                                    
          |                                                     : value_(std::move( other.value_ ))
       52 |         {
       53 |             value_ = std::move( other.value_ );
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/basic/cached_value.hpp:54:13: warning: [cppcoreguidelines-prefer-member-initializer]

    'computed_' should be initialized in a member initializer of the constructor

       51 |         CachedValue( CachedValue&& other ) noexcept
          |                                                    
          |                                                    , computed_(other.computed_.load())
       52 |         {
       53 |             value_ = std::move( other.value_ );
       54 |             computed_ = other.computed_.load();
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/basic/cached_value.hpp:57:22: warning: [cert-oop54-cpp]

    operator=() does not handle self-assignment properly

       57 |         CachedValue& operator=( const CachedValue& other )
          |                      ^
  • include/geode/basic/cached_value.hpp:128:38: warning: [cppcoreguidelines-init-variables]

    variable 'computed' is not initialized

      128 |                                 bool computed;
          |                                      ^       
          |                                               = false
  • include/geode/basic/console_logger_client.hpp:32:31: warning: [cppcoreguidelines-special-member-functions]

    class 'ConsoleLoggerClient' defines a destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       32 |     class opengeode_basic_api ConsoleLoggerClient : public LoggerClient
          |                               ^
  • include/geode/basic/console_logger_client.hpp:36:9: warning: [cppcoreguidelines-explicit-virtual-functions]

    annotate this function with 'override' or (rarely) 'final'

       36 |         ~ConsoleLoggerClient();
          |         ^                     
          |                                override
  • include/geode/basic/constant_attribute.hpp:121:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      121 |         ConstantAttribute( std::string_view name )
          |         ^
          |         explicit 
  • include/geode/basic/growable.hpp:52:39: warning: [cppcoreguidelines-pro-type-const-cast]

    do not use const_cast to remove const qualifier

       52 |             serializers_.back()( ser, const_cast< T & >( obj ) );
          |                                       ^
  • include/geode/basic/growable.hpp:76:31: warning: [readability-identifier-naming]

    invalid case style for constexpr variable 'SupportValueOverload'

       76 |         static constexpr bool SupportValueOverload = false;
          |                               ^~~~~~~~~~~~~~~~~~~~
          |                               SUPPORT_VALUE_OVERLOAD
  • include/geode/basic/growable.hpp:77:31: warning: [readability-identifier-naming]

    invalid case style for constexpr variable 'SupportObjectOverload'

       77 |         static constexpr bool SupportObjectOverload = true;
          |                               ^~~~~~~~~~~~~~~~~~~~~
          |                               SUPPORT_OBJECT_OVERLOAD
  • include/geode/basic/growable.hpp:78:31: warning: [readability-identifier-naming]

    invalid case style for constexpr variable 'SupportLambdaOverload'

       78 |         static constexpr bool SupportLambdaOverload = true;
          |                               ^~~~~~~~~~~~~~~~~~~~~
          |                               SUPPORT_LAMBDA_OVERLOAD
  • include/geode/basic/identifier.hpp:45:31: warning: [cppcoreguidelines-special-member-functions]

    class 'Identifier' defines a destructor, a move constructor and a move assignment operator but does not define a copy constructor or a copy assignment operator

       45 |     class opengeode_basic_api Identifier
          |                               ^
  • include/geode/basic/input.hpp:64:11: warning: [cppcoreguidelines-special-member-functions]

    class 'Input' defines a non-default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       64 |     class Input : public IOFile
          |           ^
  • include/geode/basic/input.hpp:77:9: warning: [cppcoreguidelines-explicit-virtual-functions]

    annotate this function with 'override' or (rarely) 'final'

       77 |         ~Input()
          |         ^       
          |                  override
  • include/geode/basic/logger.hpp:41:31: warning: [cppcoreguidelines-special-member-functions]

    class 'Logger' defines a destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       41 |     class opengeode_basic_api Logger
          |                               ^
  • include/geode/basic/logger_client.hpp:30:31: warning: [cppcoreguidelines-special-member-functions]

    class 'LoggerClient' defines a default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       30 |     class opengeode_basic_api LoggerClient
          |                               ^
  • include/geode/basic/logger_manager.hpp:36:31: warning: [cppcoreguidelines-special-member-functions]

    class 'LoggerManager' defines a destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       36 |     class opengeode_basic_api LoggerManager
          |                               ^
  • include/geode/basic/passkey.hpp:63:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'PASSKEY' used; consider a 'constexpr' template function

       63 | #define PASSKEY( Friend, Key /*key*/ ) using Key = geode::PassKey< Friend >
          |         ^
  • include/geode/basic/passkey.hpp:63:46: warning: [bugprone-macro-parentheses]

    macro argument should be enclosed in parentheses

       63 | #define PASSKEY( Friend, Key /*key*/ ) using Key = geode::PassKey< Friend >
          |                                              ^
          |                                              (  )
  • include/geode/basic/sparse_attribute.hpp:89:24: warning: [readability-simplify-boolean-expr]

    redundant boolean literal in conditional return statement

       87 |             if( value( element ) == default_values_.no_value )
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             return static_cast<bool>(value( element ) != default_values_.no_value)
       88 |             {
          |             ~
       89 |                 return false;
          |                 ~~~~~~~^~~~~~
       90 |             }
          |             ~
       91 |             return true;
          |             ~~~~~~~~~~~
  • include/geode/basic/sparse_attribute.hpp:134:30: warning: [cppcoreguidelines-avoid-magic-numbers]

    10 is a magic number; consider replacing it with a named constant

      134 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/sparse_attribute.hpp:137:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      137 |         SparseAttribute( std::string_view name )
          |         ^
          |         explicit 
  • include/geode/basic/sparse_attribute.hpp:164:62: warning: [readability-identifier-length]

    parameter name 'i' is too short, expected at least 3 characters

      164 |                              []( Archive& archive2, index_t& i, T& item ) {
          |                                                              ^
  • include/geode/basic/sparse_attribute.hpp:178:65: warning: [readability-identifier-length]

    parameter name 'i' is too short, expected at least 3 characters

      178 |                                 []( Archive& archive2, index_t& i, T& item ) {
          |                                                                 ^
  • include/geode/basic/sparse_attribute.hpp:183:30: warning: [cppcoreguidelines-avoid-magic-numbers]

    10 is a magic number; consider replacing it with a named constant

      183 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/sparse_attribute.hpp:295:31: warning: [readability-identifier-length]

    variable name 'in' is too short, expected at least 3 characters

      295 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/sparse_attribute.hpp:347:31: warning: [readability-identifier-length]

    variable name 'in' is too short, expected at least 3 characters

      347 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:78:24: warning: [readability-simplify-boolean-expr]

    redundant boolean literal in conditional return statement

       76 |             if( values_[element] == default_values_.no_value )
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             return static_cast<bool>(values_[element] != default_values_.no_value)
       77 |             {
          |             ~
       78 |                 return false;
          |                 ~~~~~~~^~~~~~
       79 |             }
          |             ~
       80 |             return true;
          |             ~~~~~~~~~~~
  • include/geode/basic/variable_attribute.hpp:126:30: warning: [cppcoreguidelines-avoid-magic-numbers]

    10 is a magic number; consider replacing it with a named constant

      126 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:129:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      129 |         VariableAttribute( std::string_view name )
          |         ^
          |         explicit 
  • include/geode/basic/variable_attribute.hpp:167:30: warning: [cppcoreguidelines-avoid-magic-numbers]

    10 is a magic number; consider replacing it with a named constant

      167 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:322:31: warning: [readability-identifier-length]

    variable name 'in' is too short, expected at least 3 characters

      322 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:351:55: warning: [hicpp-move-const-arg]

    std::move of the variable 'properties' of the trivially-copyable type 'AttributeProperties' has no effect; remove std::move()

      351 |             : VariableAttribute( default_value, name, std::move( properties ) )
          |                                                       ^~~~~~~~~~            ~
  • include/geode/basic/variable_attribute.hpp:357:20: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      357 |             return reinterpret_cast< const bool& >( values_[element] );
          |                    ^
  • include/geode/basic/variable_attribute.hpp:364:24: warning: [readability-simplify-boolean-expr]

    redundant boolean literal in conditional return statement

      362 |             if( value( element ) == default_values_.no_value )
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             return value( element ) != default_values_.no_value
      363 |             {
          |             ~
      364 |                 return false;
          |                 ~~~~~~~^~~~~~
      365 |             }
          |             ~
      366 |             return true;
          |             ~~~~~~~~~~~
  • include/geode/basic/variable_attribute.hpp:371:32: warning: [hicpp-move-const-arg]

    std::move of the variable 'value' of the trivially-copyable type 'bool' has no effect; remove std::move()

      371 |             values_[element] = std::move( value );
          |                                ^~~~~~~~~~       ~
  • include/geode/basic/variable_attribute.hpp:371:32: warning: [readability-implicit-bool-conversion]

    implicit conversion 'bool' -> 'value_type' (aka 'unsigned char')

      371 |             values_[element] = std::move( value );
          |                                ^                 
          |                                static_cast<value_type>( )
  • include/geode/basic/variable_attribute.hpp:382:23: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      382 |             modifier( reinterpret_cast< bool& >( values_[element] ) );
          |                       ^
  • include/geode/basic/variable_attribute.hpp:409:48: warning: [hicpp-move-const-arg]

    std::move of the variable 'properties' of the trivially-copyable type 'AttributeProperties' has no effect; remove std::move()

      409 |             : ReadOnlyAttribute< bool >( name, std::move( properties ) ),
          |                                                ^~~~~~~~~~            ~
  • include/geode/basic/variable_attribute.hpp:412:30: warning: [cppcoreguidelines-avoid-magic-numbers]

    10 is a magic number; consider replacing it with a named constant

      412 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:415:9: warning: [cppcoreguidelines-pro-type-member-init]

    constructor does not initialize these fields: default_values_

      415 |         VariableAttribute( std::string_view name )
          |         ^
  • include/geode/basic/variable_attribute.hpp:415:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      415 |         VariableAttribute( std::string_view name )
          |         ^
          |         explicit 
  • include/geode/basic/variable_attribute.hpp:418:9: warning: [cppcoreguidelines-pro-type-member-init]

    constructor does not initialize these fields: default_values_

      418 |         VariableAttribute()
          |         ^
  • include/geode/basic/variable_attribute.hpp:430:31: warning: [cppcoreguidelines-init-variables]

    variable 'old_value' is not initialized

      430 |                          bool old_value;
          |                               ^        
          |                                         = false
  • include/geode/basic/variable_attribute.hpp:449:30: warning: [cppcoreguidelines-avoid-magic-numbers]

    10 is a magic number; consider replacing it with a named constant

      449 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:488:38: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      488 |                     default_values_, this->name().value(), this->properties() }
          |                                      ^
  • include/geode/basic/variable_attribute.hpp:506:34: warning: [readability-implicit-bool-conversion]

    implicit conversion 'bool' -> 'value_type' (aka 'unsigned char')

      506 |                     values_[i] = typed_attribute.value( i );
          |                                  ^                         
          |                                  static_cast<value_type>(  )
  • include/geode/basic/variable_attribute.hpp:518:38: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      518 |                     default_values_, this->name().value(), this->properties() }
          |                                      ^
  • include/geode/basic/variable_attribute.hpp:549:38: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      549 |                     default_values_, this->name().value(), this->properties() }
          |                                      ^
  • include/geode/basic/variable_attribute.hpp:553:31: warning: [readability-identifier-length]

    variable name 'in' is too short, expected at least 3 characters

      553 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:604:31: warning: [readability-identifier-length]

    variable name 'in' is too short, expected at least 3 characters

      604 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:615:45: warning: [readability-redundant-member-init]

    initializer for member 'values_' is redundant

      615 |         std::vector< unsigned char > values_{};
          |                                             ^~
  • include/geode/geometry/detail/aabb_impl.hpp:70:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

       70 |         Impl( absl::Span< const BoundingBox< dimension > > bboxes )
          |         ^
          |         explicit 
  • include/geode/geometry/detail/aabb_impl.hpp:107:13: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'get_recursive_iterators' of similar type ('index_t') are easily swapped by mistake

      107 |             index_t node_index, index_t element_begin, index_t element_end )
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:107:21: note: the first parameter in the range is 'node_index'
      107 |             index_t node_index, index_t element_begin, index_t element_end )
          |                     ^~~~~~~~~~
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:107:41: note: the last parameter in the range is 'element_begin'
      107 |             index_t node_index, index_t element_begin, index_t element_end )
          |                                         ^~~~~~~~~~~~~
  • include/geode/geometry/detail/aabb_impl.hpp:109:22: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      109 |             Iterator it;
          |                      ^
  • include/geode/geometry/detail/aabb_impl.hpp:140:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      140 |             const auto it = get_recursive_iterators(
          |                        ^
  • include/geode/geometry/detail/aabb_impl.hpp:165:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      165 |             const auto it = get_recursive_iterators(
          |                        ^
  • include/geode/geometry/detail/aabb_impl.hpp:181:14: warning: [readability-function-cognitive-complexity]

    function 'closest_element_box_recursive' has cognitive complexity of 13 (threshold 10)

      181 |         void closest_element_box_recursive( const Point< dimension >& query,
          |              ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:197:13: note: +1, including nesting penalty of 0, nesting level increased to 1
      197 |             if( is_leaf( element_begin, element_end ) )
          |             ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:202:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      202 |                 if( cur_distance < distance )
          |                 ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:218:13: note: +1, including nesting penalty of 0, nesting level increased to 1
      218 |             if( distance_left < distance_right )
          |             ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:220:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      220 |                 if( distance_left < distance )
          |                 ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:226:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      226 |                 if( distance_right < distance )
          |                 ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:233:13: note: +1, nesting level increased to 1
      233 |             else
          |             ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:235:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      235 |                 if( distance_right < distance )
          |                 ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:241:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      241 |                 if( distance_left < distance )
          |                 ^
  • include/geode/geometry/detail/aabb_impl.hpp:181:14: warning: [readability-function-size]

    function 'closest_element_box_recursive' exceeds recommended size/complexity thresholds

      181 |         void closest_element_box_recursive( const Point< dimension >& query,
          |              ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:181:14: note: 7 parameters (threshold 4)
  • include/geode/geometry/detail/aabb_impl.hpp:209:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      209 |             const auto it = get_recursive_iterators(
          |                        ^
  • include/geode/geometry/detail/aabb_impl.hpp:251:14: warning: [readability-function-size]

    function 'self_intersect_recursive' exceeds recommended size/complexity thresholds

      251 |         bool self_intersect_recursive( index_t node_index1,
          |              ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:251:14: note: 7 parameters (threshold 4)
  • include/geode/geometry/detail/aabb_impl.hpp:299:28: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      299 |                 const auto it = get_recursive_iterators(
          |                            ^
  • include/geode/geometry/detail/aabb_impl.hpp:311:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      311 |             const auto it = get_recursive_iterators(
          |                        ^
  • include/geode/geometry/detail/aabb_impl.hpp:325:14: warning: [readability-function-size]

    function 'other_intersect_recursive' exceeds recommended size/complexity thresholds

      325 |         bool other_intersect_recursive( index_t node_index1,
          |              ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:325:14: note: 8 parameters (threshold 4)
  • include/geode/geometry/detail/aabb_impl.hpp:363:28: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      363 |                 const auto it = get_recursive_iterators(
          |                            ^
  • include/geode/geometry/detail/aabb_impl.hpp:375:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      375 |             const auto it = get_recursive_iterators(
          |                        ^
  • include/geode/geometry/detail/aabb_impl.hpp:389:14: warning: [readability-function-size]

    function 'generic_intersect_recursive' exceeds recommended size/complexity thresholds

      389 |         bool generic_intersect_recursive( const BOX_FILTER& box_filter,
          |              ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:389:14: note: 5 parameters (threshold 4)
  • include/geode/geometry/detail/aabb_impl.hpp:412:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      412 |             const auto it = get_recursive_iterators(
          |                        ^
  • include/geode/geometry/detail/aabb_impl.hpp:431:28: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      431 |                 const auto it = get_recursive_iterators(
          |                            ^
  • include/geode/geometry/detail/aabb_impl.hpp:449:14: warning: [readability-function-size]

    function 'containing_boxes_recursive' exceeds recommended size/complexity thresholds

      449 |         void containing_boxes_recursive( index_t node_index,
          |              ^
    /__w/OpenGeode/OpenGeode/include/geode/geometry/detail/aabb_impl.hpp:449:14: note: 5 parameters (threshold 4)
  • include/geode/geometry/detail/aabb_impl.hpp:469:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      469 |             const auto it = get_recursive_iterators(
          |                        ^
  • include/geode/geometry/information.hpp:30:17: warning: [performance-enum-size]

    enum 'SIDE' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

       30 |     enum struct SIDE
          |                 ^
  • include/geode/geometry/information.hpp:39:17: warning: [performance-enum-size]

    enum 'POSITION' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

       39 |     enum struct POSITION
          |                 ^
  • include/geode/mesh/builder/geode/geode_vertex_set_builder.hpp:42:30: warning: [cppcoreguidelines-special-member-functions]

    class 'OpenGeodeVertexSetBuilder' defines a move constructor but does not define a destructor, a copy constructor, a copy assignment operator or a move assignment operator

       42 |     class opengeode_mesh_api OpenGeodeVertexSetBuilder : public VertexSetBuilder
          |                              ^
  • include/geode/mesh/builder/geode/geode_vertex_set_builder.hpp:55:42: warning: [readability-identifier-length]

    parameter name 'nb' is too short, expected at least 3 characters

       55 |         void do_create_vertices( index_t nb ) final;
          |                                          ^
  • include/geode/mesh/builder/vertex_set_builder.hpp:47:30: warning: [cppcoreguidelines-special-member-functions]

    class 'VertexSetBuilder' defines a default destructor, a copy constructor, a copy assignment operator and a move constructor but does not define a move assignment operator

       47 |     class opengeode_mesh_api VertexSetBuilder : public IdentifierBuilder
          |                              ^
  • include/geode/mesh/builder/vertex_set_builder.hpp:75:42: warning: [readability-identifier-length]

    parameter name 'nb' is too short, expected at least 3 characters

       75 |         index_t create_vertices( index_t nb );
          |                                          ^
  • include/geode/mesh/builder/vertex_set_builder.hpp:108:50: warning: [readability-identifier-length]

    parameter name 'nb' is too short, expected at least 3 characters

      108 |         virtual void do_create_vertices( index_t nb ) = 0;
          |                                                  ^
  • include/geode/mesh/core/attribute_coordinate_reference_system.hpp:39:11: warning: [cppcoreguidelines-special-member-functions]

    class 'AttributeCoordinateReferenceSystem' defines a destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       39 |     class AttributeCoordinateReferenceSystem
          |           ^
  • include/geode/mesh/core/coordinate_reference_system_manager.hpp:48:11: warning: [cppcoreguidelines-special-member-functions]

    class 'CoordinateReferenceSystemManager' defines a destructor and a move constructor but does not define a copy constructor, a copy assignment operator or a move assignment operator

       48 |     class CoordinateReferenceSystemManager
          |           ^
  • include/geode/mesh/core/coordinate_reference_system_managers.hpp:48:11: warning: [cppcoreguidelines-special-member-functions]

    class 'CoordinateReferenceSystemManagers' defines a destructor, a move constructor and a move assignment operator but does not define a copy constructor or a copy assignment operator

       48 |     class CoordinateReferenceSystemManagers
          |           ^
  • include/geode/mesh/core/coordinate_reference_system_managers.hpp:59:13: warning: [readability-identifier-naming]

    invalid case style for function 'coordinate_reference_system_manager1D'

       59 |             coordinate_reference_system_manager1D() const;
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             coordinate_reference_system_manager1_d
  • include/geode/mesh/core/coordinate_reference_system_managers.hpp:62:13: warning: [readability-identifier-naming]

    invalid case style for function 'coordinate_reference_system_manager2D'

       62 |             coordinate_reference_system_manager2D() const;
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             coordinate_reference_system_manager2_d
  • include/geode/mesh/core/coordinate_reference_system_managers.hpp:65:13: warning: [readability-identifier-naming]

    invalid case style for function 'coordinate_reference_system_manager3D'

       65 |             coordinate_reference_system_manager3D() const;
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             coordinate_reference_system_manager3_d
  • include/geode/mesh/core/coordinate_reference_system_managers.hpp:74:13: warning: [readability-identifier-naming]

    invalid case style for function 'coordinate_reference_system_manager1D'

       74 |             coordinate_reference_system_manager1D( CRSManagersKey /*key*/ );
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             coordinate_reference_system_manager1_d
  • include/geode/mesh/core/coordinate_reference_system_managers.hpp:77:13: warning: [readability-identifier-naming]

    invalid case style for function 'coordinate_reference_system_manager2D'

       77 |             coordinate_reference_system_manager2D( CRSManagersKey /*key*/ );
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             coordinate_reference_system_manager2_d
  • include/geode/mesh/core/detail/facet_storage.hpp:60:27: error: [clang-diagnostic-error]

    unknown type name 'BITSERY'

       60 |             FacetStorage( BITSERY ) {}
          |                           ^

Have any feedback or feature suggestions? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants