Skip to content

fix(Library): better handle exception and library#183

Open
BotellaA wants to merge 6 commits intonextfrom
feat/exception-library
Open

fix(Library): better handle exception and library#183
BotellaA wants to merge 6 commits intonextfrom
feat/exception-library

Conversation

@BotellaA
Copy link
Copy Markdown
Member

No description provided.

@BotellaA BotellaA requested a review from panquez April 27, 2026 09:22
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 27, 2026

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy (v20.1.8) reports: 354 concern(s)
  • include/geode/io/image/detail/vtk_output.hpp:34:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       34 | namespace geode
          | ^~~~~~~~~~~~~~~
       35 | {
          | ~
       36 |     namespace detail
          |     ~~~~~~~~~~~~~~~~
          |     namespace geode::detail
  • include/geode/io/image/detail/vtk_output.hpp:39:15: warning: [cppcoreguidelines-special-member-functions]

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

       39 |         class VTKOutputImpl
          |               ^
  • include/geode/io/image/detail/vtk_output.hpp:62:21: warning: [hicpp-use-equals-default]

    use '= default' to define a trivial destructor

       62 |             virtual ~VTKOutputImpl() {}
          |                     ^                ~~
          |                                      = default;
  • include/geode/io/mesh/detail/vtk_input.hpp:42:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       42 | namespace geode
          | ^~~~~~~~~~~~~~~
       43 | {
          | ~
       44 |     namespace detail
          |     ~~~~~~~~~~~~~~~~
          |     namespace geode::detail
  • include/geode/io/mesh/detail/vtk_input.hpp:47:15: warning: [cppcoreguidelines-special-member-functions]

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

       47 |         class VTKInputImpl
          |               ^
  • include/geode/io/mesh/detail/vtk_input.hpp:62:13: error: [clang-diagnostic-error]

    unknown type name 'Percentage'

       62 |             Percentage is_loadable()
          |             ^
  • include/geode/io/mesh/detail/vtk_input.hpp:65:30: error: [clang-diagnostic-error]

    use of undeclared identifier 'Percentage'

       65 |                 std::vector< Percentage > percentages;
          |                              ^
  • include/geode/io/mesh/detail/vtk_input.hpp:72:28: error: [clang-diagnostic-error]

    use of undeclared identifier 'Percentage'

       72 |                     return Percentage{ 0 };
          |                            ^
  • include/geode/io/mesh/detail/vtk_input.hpp:72:38: error: [clang-diagnostic-error]

    expected ';' after return statement

       72 |                     return Percentage{ 0 };
          |                                      ^
          |                                      ;
  • include/geode/io/mesh/detail/vtk_input.hpp:80:24: error: [clang-diagnostic-error]

    use of undeclared identifier 'Percentage'

       80 |                 return Percentage{ value / nb_percentages };
          |                        ^
  • include/geode/io/mesh/detail/vtk_input.hpp:80:34: error: [clang-diagnostic-error]

    expected ';' after return statement

       80 |                 return Percentage{ value / nb_percentages };
          |                                  ^
          |                                  ;
  • include/geode/io/mesh/detail/vtk_input.hpp:100:30: error: [clang-diagnostic-error]

    use of undeclared identifier 'Percentage'

      100 |                 std::vector< Percentage >& percentages ) const = 0;
          |                              ^
  • include/geode/io/mesh/detail/vtk_input.hpp:127:24: error: [clang-diagnostic-error]

    use of undeclared identifier 'string_to_index'

      127 |                 return string_to_index(
          |                        ^
  • include/geode/io/mesh/detail/vtk_input.hpp:128:48: warning: [bugprone-suspicious-stringview-data-usage]

    result of a data() call may not be null terminated, provide size information to the callee to prevent potential issues

      128 |                     piece.attribute( attribute.data() ).value() );
          |                                      ~~~~~~~~~~^~~~
  • include/geode/io/mesh/detail/vtk_input.hpp:135:17: warning: [llvm-qualified-auto]

    'const auto format' can be declared as 'const auto *const format'

      135 |                 const auto format = data.attribute( "format" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_input.hpp:140:17: warning: [llvm-else-after-return]

    do not use 'else' after 'return'

      140 |                 else
          |                 ^~~~
      141 |                 {
          |                 ~
      142 |                     const auto data_string =
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~
      143 |                         absl::StripAsciiWhitespace( data.child_value() );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      144 |                     if( match( format, "ascii" ) )
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      145 |                     {
          |                     ~
      146 |                         auto string = to_string( data_string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      147 |                         absl::RemoveExtraAsciiWhitespace( &string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      148 |                         return read_ascii_integer_data_array< T >( string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      149 |                     }
          |                     ~
      150 |                     return decode< T >( data_string );
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      151 |                 }
          |                 ~
  • include/geode/io/mesh/detail/vtk_input.hpp:158:17: warning: [llvm-qualified-auto]

    'const auto format' can be declared as 'const auto *const format'

      158 |                 const auto format = data.attribute( "format" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_input.hpp:163:17: warning: [llvm-else-after-return]

    do not use 'else' after 'return'

      163 |                 else
          |                 ^~~~
      164 |                 {
          |                 ~
      165 |                     const auto data_string =
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~
      166 |                         absl::StripAsciiWhitespace( data.child_value() );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      167 |                     if( match( format, "ascii" ) )
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      168 |                     {
          |                     ~
      169 |                         auto string = to_string( data_string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      170 |                         absl::RemoveExtraAsciiWhitespace( &string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      171 |                         return read_ascii_uint8_data_array< T >( string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      172 |                     }
          |                     ~
      173 |                     return decode< T >( data_string );
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      174 |                 }
          |                 ~
  • include/geode/io/mesh/detail/vtk_input.hpp:181:17: warning: [llvm-qualified-auto]

    'const auto format' can be declared as 'const auto *const format'

      181 |                 const auto format = data.attribute( "format" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_input.hpp:186:17: warning: [llvm-else-after-return]

    do not use 'else' after 'return'

      186 |                 else
          |                 ^~~~
      187 |                 {
          |                 ~
      188 |                     const auto data_string =
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~
      189 |                         absl::StripAsciiWhitespace( data.child_value() );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      190 |                     if( match( format, "ascii" ) )
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      191 |                     {
          |                     ~
      192 |                         auto string = to_string( data_string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      193 |                         absl::RemoveExtraAsciiWhitespace( &string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      194 |                         return read_ascii_float_data_array< T >( string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      195 |                     }
          |                     ~
      196 |                     return decode< T >( data_string );
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      197 |                 }
          |                 ~
  • include/geode/io/mesh/detail/vtk_input.hpp:212:18: warning: [readability-function-size]

    function 'build_attribute' exceeds recommended size/complexity thresholds

      212 |             void build_attribute( AttributeManager& manager,
          |                  ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:212:18: note: 5 parameters (threshold 4)
  • include/geode/io/mesh/detail/vtk_input.hpp:256:18: warning: [readability-function-cognitive-complexity]

    function 'read_attribute_data' has cognitive complexity of 12 (threshold 10)

      256 |             void read_attribute_data( const pugi::xml_node& data,
          |                  ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:263:17: note: +1, including nesting penalty of 0, nesting level increased to 1
      263 |                 if( const auto data_nb_components =
          |                 ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:269:17: note: +1, including nesting penalty of 0, nesting level increased to 1
      269 |                 if( match( data_array_type, "Float64" )
          |                 ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:270:21: note: +1
      270 |                     || match( data_array_type, "Float32" ) )
          |                     ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:278:22: note: +1, nesting level increased to 1
      278 |                 else if( match( data_array_type, "Int64" )
          |                      ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:281:26: note: +1
      281 |                          || match( data_array_type, "UInt64" ) )
          |                          ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:285:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      285 |                     if( min_value >= 0
          |                     ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:286:25: note: +1
      286 |                         && max_value < std::numeric_limits< index_t >::max() )
          |                         ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:294:21: note: +1, nesting level increased to 2
      294 |                     else
          |                     ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:303:22: note: +1, nesting level increased to 1
      303 |                 else if( match( data_array_type, "Int8" ) )
          |                      ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:312:22: note: +1, nesting level increased to 1
      312 |                 else if( match( data_array_type, "UInt8" ) )
          |                      ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:322:17: note: +1, nesting level increased to 1
      322 |                 else
          |                 ^
  • include/geode/io/mesh/detail/vtk_input.hpp:260:17: warning: [llvm-qualified-auto]

    'const auto data_array_name' can be declared as 'const auto *const data_array_name'

      260 |                 const auto data_array_name = data.attribute( "Name" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_input.hpp:261:17: warning: [llvm-qualified-auto]

    'const auto data_array_type' can be declared as 'const auto *const data_array_type'

      261 |                 const auto data_array_type = data.attribute( "type" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_input.hpp:297:54: warning: [google-runtime-int]

    consider replacing 'long' with 'int64'

      297 |                             read_integer_data_array< long int >( data );
          |                                                      ^
  • include/geode/io/mesh/detail/vtk_input.hpp:298:42: warning: [google-runtime-int]

    consider replacing 'long' with 'int64'

      298 |                         build_attribute< long int >( attribute_manager,
          |                                          ^
  • include/geode/io/mesh/detail/vtk_input.hpp:370:18: warning: [readability-function-size]

    function 'create_attribute' exceeds recommended size/complexity thresholds

      370 |             void create_attribute( AttributeManager& manager,
          |                  ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_input.hpp:370:18: note: 6 parameters (threshold 4)
  • include/geode/io/mesh/detail/vtk_input.hpp:382:37: warning: [readability-identifier-length]

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

      382 |                     for( const auto c : Range{ nb_components } )
          |                                     ^
  • include/geode/io/mesh/detail/vtk_input.hpp:384:56: warning: [readability-math-missing-parentheses]

    '*' has higher precedence than '+'; add parentheses to explicitly specify the order of operations

      384 |                         const auto& new_value = values[nb_components * i + c];
          |                                                        ^~~~~~~~~~~~~~~~~
          |                                                        (                )
  • include/geode/io/mesh/detail/vtk_input.hpp:406:17: warning: [llvm-qualified-auto]

    'const auto compressor' can be declared as 'const auto *const compressor'

      406 |                 const auto compressor = root_.attribute( "compressor" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_input.hpp:458:39: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      458 |                 const auto nb_data = *reinterpret_cast< const UInt* >(
          |                                       ^
  • include/geode/io/mesh/detail/vtk_input.hpp:465:37: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      465 |                 const auto values = reinterpret_cast< const T* >(
          |                                     ^
  • include/geode/io/mesh/detail/vtk_input.hpp:486:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      486 |                         nb_values * 8. * sizeof( UInt ) / ( 6. * 4. ) ) );
          |                                     ^
  • include/geode/io/mesh/detail/vtk_input.hpp:486:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      486 |                         nb_values * 8. * sizeof( UInt ) / ( 6. * 4. ) ) );
          |                                                             ^
  • include/geode/io/mesh/detail/vtk_input.hpp:486:66: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      486 |                         nb_values * 8. * sizeof( UInt ) / ( 6. * 4. ) ) );
          |                                                                  ^
  • include/geode/io/mesh/detail/vtk_input.hpp:496:21: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      496 |                     reinterpret_cast< const UInt* >(
          |                     ^
  • include/geode/io/mesh/detail/vtk_input.hpp:519:21: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      519 |                     reinterpret_cast< const UInt* >(
          |                     ^
  • include/geode/io/mesh/detail/vtk_input.hpp:524:33: warning: [readability-identifier-length]

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

      524 |                 for( const auto b : Range{ nb_data_blocks } )
          |                                 ^
  • include/geode/io/mesh/detail/vtk_input.hpp:536:17: warning: [llvm-qualified-auto]

    'const auto compressed_data_bytes' can be declared as 'const auto *const compressed_data_bytes'

      536 |                 const auto compressed_data_bytes =
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_input.hpp:537:21: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      537 |                     reinterpret_cast< const unsigned char* >(
          |                     ^
  • include/geode/io/mesh/detail/vtk_input.hpp:545:33: warning: [readability-identifier-length]

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

      545 |                 for( const auto b : Range{ nb_data_blocks } )
          |                                 ^
  • include/geode/io/mesh/detail/vtk_input.hpp:549:21: warning: [google-runtime-int]

    consider replacing 'unsigned long' with 'uint64'

      549 |                     unsigned long decompressed_data_length =
          |                     ^
  • include/geode/io/mesh/detail/vtk_input.hpp:562:41: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      562 |                     const auto values = reinterpret_cast< const T* >(
          |                                         ^
  • include/geode/io/mesh/detail/vtk_input.hpp:593:32: warning: [readability-identifier-length]

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

      593 |                     const auto ok = ( *string_convert )( string, &value );
          |                                ^
  • include/geode/io/mesh/detail/vtk_input.hpp:618:25: warning: [cert-err34-c]

    'atoi' used to convert a string to an integer value, but function will not report conversion errors; consider using 'strtol' instead

      618 |                         std::atoi( to_string( string ).c_str() ) );
          |                         ^
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:44:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       44 | namespace geode
          | ^~~~~~~~~~~~~~~
       45 | {
          | ~
       46 |     namespace detail
          |     ~~~~~~~~~~~~~~~~
          |     namespace geode::detail
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:55:23: error: [clang-diagnostic-error]

    unknown type name 'MeshImpl'

       55 |                 const MeshImpl& impl,
          |                       ^
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:60:17: warning: [cppcoreguidelines-prefer-member-initializer]

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

       57 |                 : VTKInputImpl< Mesh >{ filename, type }
          |                                                         
          |                                                         , mesh_builder_(MeshBuilder::create( this->mesh() ))
       58 |             {
       59 |                 this->initialize_mesh( Mesh::create( impl ) );
       60 |                 mesh_builder_ = MeshBuilder::create( this->mesh() );
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:68:13: warning: [modernize-use-nodiscard]

    function 'get_cell_vertices' should be marked [[nodiscard]]

       68 |             absl::FixedArray< std::vector< index_t > > get_cell_vertices(
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:69:17: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'get_cell_vertices' of similar type ('absl::Span') are easily swapped by mistake

       69 |                 absl::Span< const int64_t > connectivity,
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       70 |                 absl::Span< const int64_t > offsets ) const
          |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_mesh_input.hpp:69:45: note: the first parameter in the range is 'connectivity'
       69 |                 absl::Span< const int64_t > connectivity,
          |                                             ^~~~~~~~~~~~
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_mesh_input.hpp:70:45: note: the last parameter in the range is 'offsets'
       70 |                 absl::Span< const int64_t > offsets ) const
          |                                             ^~~~~~~
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:101:30: error: [clang-diagnostic-error]

    use of undeclared identifier 'Percentage'

      101 |                 std::vector< Percentage >& percentages ) const final
          |                              ^
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:120:13: warning: [modernize-use-nodiscard]

    function 'is_vtk_cells_loadable' should be marked [[nodiscard]]

      120 |             virtual Percentage is_vtk_cells_loadable(
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:120:21: error: [clang-diagnostic-error]

    unknown type name 'Percentage'

      120 |             virtual Percentage is_vtk_cells_loadable(
          |                     ^
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:149:37: warning: [readability-identifier-length]

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

      149 |                     for( const auto c : Range{ 3 } )
          |                                     ^
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:151:56: warning: [readability-math-missing-parentheses]

    '*' has higher precedence than '+'; add parentheses to explicitly specify the order of operations

      151 |                         points[p].set_value( c, coords[3 * p + c] );
          |                                                        ^~~~~
          |                                                        (    )
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:164:17: warning: [llvm-qualified-auto]

    'const auto type' can be declared as 'const auto *const type'

      164 |                 const auto type = points.attribute( "type" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:175:17: warning: [llvm-qualified-auto]

    'const auto format' can be declared as 'const auto *const format'

      175 |                 const auto format = points.attribute( "format" ).value();
          |                 ^~~~~~~~~~
          |                 const auto *const 
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:186:17: warning: [llvm-else-after-return]

    do not use 'else' after 'return'

      186 |                 else
          |                 ^~~~
      187 |                 {
          |                 ~
      188 |                     const auto coords_string =
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~
      189 |                         absl::StripAsciiWhitespace( points.child_value() );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      190 |                     if( this->match( format, "ascii" ) )
          |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      191 |                     {
          |                     ~
      192 |                         auto string = to_string( coords_string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      193 |                         absl::RemoveExtraAsciiWhitespace( &string );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      194 |                         const auto coords =
          |                         ~~~~~~~~~~~~~~~~~~~
      195 |                             read_ascii_coordinates( string, nb_points );
          |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      196 |                         OpenGeodeIOMeshException::check_exception(
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      197 |                             coords.size() == 3 * nb_points, nullptr,
          |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      198 |                             OpenGeodeException::TYPE::data,
          |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      199 |                             "[VTKInput::read_points] Wrong number of "
          |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      200 |                             "coordinates" );
          |                             ~~~~~~~~~~~~~~~~
      201 |                         return get_points( coords );
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/detail/vtk_mesh_input.hpp:228:34: warning: [bugprone-implicit-widening-of-multiplication-result]

    performing an implicit widening conversion to type 'size_type' (aka 'unsigned long') of a multiplication performed in type 'index_t' (aka 'unsigned int')

      228 |                 results.reserve( 3 * nb_points );
          |                                  ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_mesh_input.hpp:228:34: note: make conversion explicit to silence this warning
       26 |                 results.reserve( 3 * nb_points );
          |                                  ^~~~~~~~~~~~~
          |                                  static_cast<size_type>( )
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtk_mesh_input.hpp:228:34: note: perform multiplication in a wider type
      228 |                 results.reserve( 3 * nb_points );
          |                                  ^
          |                                  static_cast<size_type>( )
  • include/geode/io/mesh/detail/vtu_hybrid_output.hpp:39:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       39 | namespace geode
          | ^~~~~~~~~~~~~~~
       40 | {
          | ~
       41 |     namespace detail
          |     ~~~~~~~~~~~~~~~~
          |     namespace geode::detail
  • include/geode/io/mesh/detail/vtu_hybrid_output.hpp:57:13: warning: [modernize-use-nodiscard]

    function 'write' should be marked [[nodiscard]]

       57 |             std::vector< std::string > write(
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/mesh/detail/vtu_input_impl.hpp:28:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       28 | namespace geode
          | ^~~~~~~~~~~~~~~
       29 | {
          | ~
       30 |     namespace detail
          |     ~~~~~~~~~~~~~~~~
          |     namespace geode::detail
  • include/geode/io/mesh/detail/vtu_input_impl.hpp:37:57: error: [clang-diagnostic-error]

    no type named 'MeshImpl' in namespace 'geode'

       37 |                 std::string_view filename, const geode::MeshImpl& impl )
          |                                                  ~~~~~~~^
  • include/geode/io/mesh/detail/vtu_input_impl.hpp:42:13: warning: [modernize-use-nodiscard]

    function 'read_cells' should be marked [[nodiscard]]

       42 |             std::tuple< absl::FixedArray< std::vector< index_t > >,
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/mesh/detail/vtu_input_impl.hpp:44:17: warning: [readability-function-cognitive-complexity]

    function 'read_cells' has cognitive complexity of 14 (threshold 10)

       44 |                 read_cells(
          |                 ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:50:17: note: +1, including nesting penalty of 0, nesting level increased to 1
       50 |                 for( const auto& data :
          |                 ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:53:21: note: +2, including nesting penalty of 1, nesting level increased to 2
       53 |                     if( this->match(
          |                     ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:70:26: note: +1, nesting level increased to 2
       70 |                     else if( this->match( data.attribute( "Name" ).value(),
          |                          ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:83:26: note: +1, nesting level increased to 2
       83 |                     else if( this->match(
          |                          ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:86:25: note: +3, including nesting penalty of 2, nesting level increased to 3
       86 |                         if( this->match(
          |                         ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:93:30: note: +1, nesting level increased to 3
       93 |                         else if( this->match( data.attribute( "type" ).value(),
          |                              ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:97:29: note: +4, including nesting penalty of 3, nesting level increased to 4
       97 |                             for( const auto type :
          |                             ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/mesh/detail/vtu_input_impl.hpp:105:25: note: +1, nesting level increased to 3
      105 |                         else
          |                         ^
  • include/geode/io/mesh/internal/assimp_input.hpp:34:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       34 | namespace geode
          | ^~~~~~~~~~~~~~~
       35 | {
          | ~
       36 |     namespace internal
          |     ~~~~~~~~~~~~~~~~~~
          |     namespace geode::internal
  • include/geode/io/mesh/internal/assimp_input.hpp:39:15: warning: [cppcoreguidelines-special-member-functions]

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

       39 |         class AssimpMeshInput
          |               ^
  • include/geode/io/mesh/internal/assimp_output.hpp:37:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       37 | namespace geode
          | ^~~~~~~~~~~~~~~
       38 | {
          | ~
       39 |     namespace internal
          |     ~~~~~~~~~~~~~~~~~~
          |     namespace geode::internal
  • include/geode/io/mesh/internal/assimp_output.hpp:79:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'aiNode *'

       79 |                 assimp_scene_.mRootNode = new aiNode;
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:81:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'aiMaterial **'

       81 |                 assimp_scene_.mMaterials = new aiMaterial*[1];
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:82:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'aiMaterial *'

       82 |                 assimp_scene_.mMaterials[0] = new aiMaterial;
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:82:17: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

  • include/geode/io/mesh/internal/assimp_output.hpp:85:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'aiMesh **'

       85 |                 assimp_scene_.mMeshes = new aiMesh*[1];
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:86:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'aiMesh *'

       86 |                 assimp_scene_.mMeshes[0] = new aiMesh;
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:86:17: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

  • include/geode/io/mesh/internal/assimp_output.hpp:88:17: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       88 |                 assimp_scene_.mMeshes[0]->mMaterialIndex = 0;
          |                 ^
  • include/geode/io/mesh/internal/assimp_output.hpp:90:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'unsigned int *'

       90 |                 assimp_scene_.mRootNode->mMeshes = new unsigned int[1];
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:91:17: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       91 |                 assimp_scene_.mRootNode->mMeshes[0] = 0;
          |                 ^
  • include/geode/io/mesh/internal/assimp_output.hpp:97:23: warning: [readability-identifier-naming]

    invalid case style for variable 'pMesh'

       97 |                 auto* pMesh = assimp_scene_.mMeshes[0];
          |                       ^~~~~
          |                       p_mesh
       98 |                 const auto nb_vertices = surface_mesh_.nb_vertices();
       99 |                 pMesh->mVertices = new aiVector3D[nb_vertices];
          |                 ~~~~~
          |                 p_mesh
      100 |                 pMesh->mNumVertices = nb_vertices;
          |                 ~~~~~
          |                 p_mesh
      101 | 
      102 |                 for( const auto p : Range{ nb_vertices } )
      103 |                 {
      104 |                     pMesh->mVertices[p] = { surface_mesh_.point( p ).value( 0 ),
          |                     ~~~~~
          |                     p_mesh
  • include/geode/io/mesh/internal/assimp_output.hpp:97:31: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       97 |                 auto* pMesh = assimp_scene_.mMeshes[0];
          |                               ^
  • include/geode/io/mesh/internal/assimp_output.hpp:99:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'aiVector3D *' (aka 'aiVector3t *')

       99 |                 pMesh->mVertices = new aiVector3D[nb_vertices];
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:104:21: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

      104 |                     pMesh->mVertices[p] = { surface_mesh_.point( p ).value( 0 ),
          |                     ^
  • include/geode/io/mesh/internal/assimp_output.hpp:112:17: warning: [llvm-qualified-auto]

    'auto pMesh' can be declared as 'auto *pMesh'

      112 |                 auto pMesh = assimp_scene_.mMeshes[0];
          |                 ^~~~
          |                 auto *
  • include/geode/io/mesh/internal/assimp_output.hpp:112:22: warning: [readability-identifier-naming]

    invalid case style for variable 'pMesh'

      112 |                 auto pMesh = assimp_scene_.mMeshes[0];
          |                      ^~~~~
          |                      p_mesh
      113 |                 const auto nb_polygons = surface_mesh_.nb_polygons();
      114 |                 pMesh->mFaces = new aiFace[nb_polygons];
          |                 ~~~~~
          |                 p_mesh
      115 |                 pMesh->mNumFaces = nb_polygons;
          |                 ~~~~~
          |                 p_mesh
      116 | 
      117 |                 for( const auto p : Range{ nb_polygons } )
      118 |                 {
      119 |                     auto& face = pMesh->mFaces[p];
          |                                  ~~~~~
          |                                  p_mesh
  • include/geode/io/mesh/internal/assimp_output.hpp:112:30: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

      112 |                 auto pMesh = assimp_scene_.mMeshes[0];
          |                              ^
  • include/geode/io/mesh/internal/assimp_output.hpp:114:17: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'aiFace *'

      114 |                 pMesh->mFaces = new aiFace[nb_polygons];
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:119:34: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

      119 |                     auto& face = pMesh->mFaces[p];
          |                                  ^
  • include/geode/io/mesh/internal/assimp_output.hpp:122:21: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'unsigned int *'

      122 |                     face.mIndices = new unsigned int[nb_vertices];
          |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/geode/io/mesh/internal/assimp_output.hpp:126:25: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

      126 |                         face.mIndices[v] =
          |                         ^
  • include/geode/io/model/detail/vtm_output.hpp:57:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       57 | namespace geode
          | ^~~~~~~~~~~~~~~
       58 | {
          | ~
       59 |     namespace detail
          |     ~~~~~~~~~~~~~~~~
          |     namespace geode::detail
  • include/geode/io/model/detail/vtm_output.hpp:112:13: warning: [modernize-use-nodiscard]

    function 'prefix' should be marked [[nodiscard]]

      112 |             std::string_view prefix() const
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/model/detail/vtm_output.hpp:117:13: warning: [modernize-use-nodiscard]

    function 'files_directory' should be marked [[nodiscard]]

      117 |             std::string_view files_directory() const
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/model/detail/vtm_output.hpp:144:34: warning: [readability-identifier-length]

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

      144 |                 for( const auto& id : corner_ids )
          |                                  ^
  • include/geode/io/model/detail/vtm_output.hpp:201:34: warning: [readability-identifier-length]

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

      201 |                 for( const auto& id : line_ids )
          |                                  ^
  • include/geode/io/model/detail/vtm_output.hpp:242:18: warning: [readability-function-cognitive-complexity]

    function 'write_surfaces' has cognitive complexity of 12 (threshold 10)

      242 |             void write_surfaces( pugi::xml_node& surface_block )
          |                  ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:252:17: note: +1, including nesting penalty of 0, nesting level increased to 1
      252 |                 for( const auto& surface : this->mesh().surfaces() )
          |                 ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:258:17: note: +1, including nesting penalty of 0, nesting level increased to 1
      258 |                 for( const auto& id : surface_ids )
          |                 ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:267:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      267 |                     if( is_new )
          |                     ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:272:21: note: +1, nesting level increased to 2
      272 |                     else
          |                     ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:284:54: note: nesting level increased to 2
      284 |                     tasks[counter++] = async::spawn( [&surface, this] {
          |                                                      ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:288:25: note: +3, including nesting penalty of 2, nesting level increased to 3
      288 |                         if( const auto* triangulated = dynamic_cast<
          |                         ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:294:30: note: +1, nesting level increased to 3
      294 |                         else if( const auto* polygonal = dynamic_cast<
          |                              ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:300:30: note: +1, nesting level increased to 3
      300 |                         else if( const auto* grid =
          |                              ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:306:25: note: +1, nesting level increased to 3
      306 |                         else
          |                         ^
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/detail/vtm_output.hpp:318:17: note: +1, including nesting penalty of 0, nesting level increased to 1
      318 |                 for( auto& task : all_tasks.get() )
          |                 ^
  • include/geode/io/model/detail/vtm_output.hpp:258:34: warning: [readability-identifier-length]

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

      258 |                 for( const auto& id : surface_ids )
          |                                  ^
  • include/geode/io/model/internal/msh_common.hpp:60:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       60 | namespace geode
          | ^~~~~~~~~~~~~~~
       61 | {
          | ~
       62 |     namespace internal
          |     ~~~~~~~~~~~~~~~~~~
          |     namespace geode::internal
  • include/geode/io/model/internal/msh_common.hpp:64:16: warning: [cppcoreguidelines-pro-type-member-init]

    constructor does not initialize these fields: id

       64 |         struct GmshElementID
          |                ^
       65 |         {
       66 |             GmshElementID() = default;
       67 |             GmshElementID(
       68 |                 geode::ComponentType gmsh_type, geode::index_t gmsh_id )
       69 |                 : type( std::move( gmsh_type ) ), id( gmsh_id )
       70 |             {
       71 |             }
       72 | 
       73 |             bool operator==( const GmshElementID& other ) const
       74 |             {
       75 |                 return type == other.type && id == other.id;
       76 |             }
       77 |             geode::ComponentType type;
       78 |             geode::index_t id;
          |                              
          |                              {}
  • include/geode/io/model/internal/msh_common.hpp:97:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       97 | namespace geode
          | ^~~~~~~~~~~~~~~
       98 | {
          | ~
       99 |     namespace internal
          |     ~~~~~~~~~~~~~~~~~~
          |     namespace geode::internal
  • include/geode/io/model/internal/msh_common.hpp:107:13: warning: [modernize-use-nodiscard]

    function 'contains_elementary_id' should be marked [[nodiscard]]

      107 |             bool contains_elementary_id(
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/model/internal/msh_common.hpp:114:13: warning: [modernize-use-nodiscard]

    function 'contains_physical_id' should be marked [[nodiscard]]

      114 |             bool contains_physical_id( const GmshElementID& physical_id ) const
          |             ^
          |             [[nodiscard]] 
  • include/geode/io/model/internal/msh_common.hpp:122:15: warning: [cppcoreguidelines-special-member-functions]

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

      122 |         class GMSHElement
          |               ^
  • include/geode/io/model/internal/msh_common.hpp:126:17: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'GMSHElement' of similar type ('geode::index_t') are easily swapped by mistake

      126 |                 geode::index_t elementary_entity_id,
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      127 |                 geode::index_t nb_vertices,
          |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/internal/msh_common.hpp:126:32: note: the first parameter in the range is 'elementary_entity_id'
      126 |                 geode::index_t elementary_entity_id,
          |                                ^~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode-IO/OpenGeode-IO/include/geode/io/model/internal/msh_common.hpp:127:32: note: the last parameter in the range is 'nb_vertices'
      127 |                 geode::index_t nb_vertices,
          |                                ^~~~~~~~~~~
  • include/geode/io/model/internal/msh_common.hpp:129:40: warning: [hicpp-move-const-arg]

    std::move of the variable 'physical_entity_id' of the trivially-copyable type 'geode::index_t' (aka 'unsigned int') has no effect; remove std::move()

      129 |                 : physical_entity_id_( std::move( physical_entity_id ) ),
          |                                        ^~~~~~~~~~                    ~
  • include/geode/io/model/internal/msh_common.hpp:130:42: warning: [hicpp-move-const-arg]

    std::move of the variable 'elementary_entity_id' of the trivially-copyable type 'geode::index_t' (aka 'unsigned int') has no effect; remove std::move()

      130 |                   elementary_entity_id_( std::move( elementary_entity_id ) ),
          |                                          ^~~~~~~~~~                      ~
  • include/geode/io/model/internal/msh_common.hpp:134:17: error: [clang-diagnostic-error]

    use of undeclared identifier 'OpenGeodeIOModelException'; did you mean 'OpenGeodeModelException'?

      134 |                 OpenGeodeIOModelException::check_exception(
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~
          |                 OpenGeodeModelException
    /__w/OpenGeode-IO/OpenGeode-IO/OpenGeode-0.0.0-ubuntu/include/geode/model/common.hpp:33:5: note: 'OpenGeodeModelException' declared here
       33 |     OPENGEODE_LIBRARY( opengeode_model_api, OpenGeode, Model );
          |     ^
    /__w/OpenGeode-IO/OpenGeode-IO/OpenGeode-0.0.0-ubuntu/include/geode/basic/library.hpp:75:22: note: expanded from macro 'OPENGEODE_LIBRARY'
       75 |     class export_api project_name##library_name##Exception                     \
          |                      ^
    note: expanded from here
  • include/geode/io/model/internal/msh_common.hpp:155:28: warning: [readability-make-member-function-const]

    method 'physical_entity_id' can be made const

      155 |             geode::index_t physical_entity_id()
          |                            ^                   
          |                                                 const
  • include/geode/io/model/internal/msh_common.hpp:160:28: warning: [readability-make-member-function-const]

    method 'elementary_entity_id' can be made const

      160 |             geode::index_t elementary_entity_id()
          |                            ^                     
          |                                                   const
  • include/geode/io/model/internal/msh_common.hpp:179:33: warning: [readability-identifier-length]

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

      179 |                 for( const auto n : geode::Range{ nb_vertices() } )
          |                                 ^
  • include/geode/io/model/internal/msh_common.hpp:429:28: warning: [cppcoreguidelines-explicit-virtual-functions]

    'override' is redundant since the function is already declared 'final'

      429 |             geode::index_t create_gmsh_polyhedron( geode::BRepBuilder& builder,
          |                            ^
      430 |                 const geode::uuid& block_uuid,
      431 |                 const std::vector< geode::index_t >& v_ids ) override final
          |                                                              ~~~~~~~~
  • include/geode/io/model/internal/msh_common.hpp:449:23: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      449 |                       8, vertex_ids }
          |                       ^
  • include/geode/io/model/internal/msh_common.hpp:453:28: warning: [cppcoreguidelines-explicit-virtual-functions]

    'override' is redundant since the function is already declared 'final'

      453 |             geode::index_t create_gmsh_polyhedron( geode::BRepBuilder& builder,
          |                            ^
      454 |                 const geode::uuid& block_uuid,
      455 |                 const std::vector< geode::index_t >& v_ids ) override final
          |                                                              ~~~~~~~~
  • include/geode/io/model/internal/msh_common.hpp:474:23: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      474 |                       6, vertex_ids }
          |                       ^
  • include/geode/io/model/internal/msh_common.hpp:478:28: warning: [cppcoreguidelines-explicit-virtual-functions]

    'override' is redundant since the function is already declared 'final'

      478 |             geode::index_t create_gmsh_polyhedron( geode::BRepBuilder& builder,
          |                            ^
      479 |                 const geode::uuid& block_uuid,
      480 |                 const std::vector< geode::index_t >& v_ids ) override final
          |                                                              ~~~~~~~~
  • include/geode/io/model/internal/msh_common.hpp:498:23: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      498 |                       5, vertex_ids }
          |                       ^
  • include/geode/io/model/internal/msh_common.hpp:502:28: warning: [cppcoreguidelines-explicit-virtual-functions]

    'override' is redundant since the function is already declared 'final'

      502 |             geode::index_t create_gmsh_polyhedron( geode::BRepBuilder& builder,
          |                            ^
      503 |                 const geode::uuid& block_uuid,
      504 |                 const std::vector< geode::index_t >& v_ids ) override final
          |                                                              ~~~~~~~~
  • include/geode/io/model/internal/msh_common.hpp:517:64: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      517 |             GMSHElementFactory::register_creator< GMSHPoint >( 15 );
          |                                                                ^
  • src/geode/io/model/msh_input.cpp:613:30: warning: [readability-identifier-length]

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

      613 |             for( const auto& l : brep_.lines() )
          |                              ^

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