InsightSoftwareConsortium / InsightSoftwareConsortium/ITK

COMP: Test deleted virtual methods / destructors

Open
#3,390 1 comment 0 reactions 0 assignees View on GitHub
type:Coverage
Dominant language
C++
Stars
1.7k
Forks
748
Avg merge
1d 1h
Merged PRs (30d)
64

Description

### Description

As discussed in #3389, there are virtual methods (in this case, all destructors) that are marked as `= delete`, and there are compilers that should be given a chance to complain about that. This issue is a request that we add testing code to exercise these destructors. If the compilers are not happy then the underlying code would need to be modifed as well; likely in a manner similar to #3389 . Via `egrep 'virtual .*delete;'` the following for instances are identified
https://github.com/InsightSoftwareConsortium/ITK/blob/dfa33a74c6fce77cc75e1c37235fbee84b2ba103/Modules/IO/ImageBase/include/itkConvertPixelBuffer.h#L60
https://github.com/InsightSoftwareConsortium/ITK/blob/dfa33a74c6fce77cc75e1c37235fbee84b2ba103/Modules/IO/MeshBase/include/itkConvertArrayPixelBuffer.h#L45
https://github.com/InsightSoftwareConsortium/ITK/blob/dfa33a74c6fce77cc75e1c37235fbee84b2ba103/Modules/IO/MeshBase/include/itkConvertVariableLengthVectorPixelBuffer.h#L45
https://github.com/InsightSoftwareConsortium/ITK/blob/dfa33a74c6fce77cc75e1c37235fbee84b2ba103/Modules/Numerics/Statistics/include/itkKdTree.h#L131

@jhlegarreta

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the four headers named in the issue and use the provided egrep pattern to confirm the deleted virtual destructors. Add testing code that exercises these destructors, then build with the relevant compilers to see whether they report problems. Done means the destructors are covered and any compiler failures are addressed as needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, testing-qa
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.