-
-
Notifications
You must be signed in to change notification settings - Fork 713
Replace Fill(T{}) with {} initialization, replace T var; var.Fill with auto var = T::Filled in tests
#4887
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace Fill(T{}) with {} initialization, replace T var; var.Fill with auto var = T::Filled in tests
#4887
Conversation
Replaced code of the form
Type var;
var.Fill(ElementType{});
with `Type var{};`
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ [^ ].*[ ])(\w+);[\r\n]+ [ ]+\2\.Fill\(.+{}\);
Replace with: $1$2{};
Filters: itk*Test*.cxx
[v] Match case
(*) Regular expression
Follow-up to pull request InsightSoftwareConsortium#4881
commit 569a8b6
"STYLE: Replace Fill(0) with {} initializer for local variables in tests"
|
@jhlegarreta I hope you like this PR! The adjustments might potentially prevent code analysis warnings about uninitialized variables. I added you as reviewer as you are very much involved with the tests of ITK. |
fa1e339 to
e991e27
Compare
Replaced code of the form
SizeType size;
size.Fill(x);
with `auto size = SizeType::Filled(x);`
Following C++ Core Guidelines, Oct 3, 2024, "Always initialize an object",
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-always
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ )(.*Size.*[^ ])[ ]+(\w+);[\r\n]+ [ ]+\3\.Fill\(
Replace with: $1auto $3 = $2::Filled\(
Filters: itk*Test*.cxx
[v] Match case
(*) Regular expression
Removed "typename" keywords from `typename T::::SizeType::Filled` calls.
Follow-up to pull request InsightSoftwareConsortium#4881
commit 569a8b6
"STYLE: Replace Fill(0) with {} initializer for local variables in tests"
Replaced code of the form
IndexType index;
index.Fill(x);
with `auto index = IndexType::Filled(x);`
Following C++ Core Guidelines, Oct 3, 2024, "Always initialize an object",
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-always
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ )(.*::Index.*[^ ])[ ]+(\w+);[\r\n]+ [ ]+\3\.Fill\(
Find what: ^([ ]+ )(IndexType)[ ]+(\w+);[\r\n]+ [ ]+\3\.Fill\(
Replace with: $1auto $3 = $2::Filled\(
Filters: itk*Test*.cxx
[v] Match case
(*) Regular expression
Removed "typename" keywords from `typename T::::IndexType::Filled` calls.
Follow-up to pull request InsightSoftwareConsortium#4881
commit 569a8b6
"STYLE: Replace Fill(0) with {} initializer for local variables in tests"
e991e27 to
504d63b
Compare
jhlegarreta
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Would be good to apply all of these to the ITK SW Guide (where appropriate, or the Fill method is not explicitly demonstrated), the ITK Sphinx Examples, and to the remotes.
|
Thanks @jhlegarreta I agree that it should then also be applied to the ITK SW Guide. In general, I'm proposing for variable initializations:
Would that also be OK to you? |
Go for it if you have the bandwidth. Please, add the necessary explanation to the SWG and the necessary ITK Sphinx examples. |
Thanks for suggestion Jon. 👍 My intention is to first update the ITK source tree (ITK/Modules/itk*.*) accordingly, and then adjust the SWG and examples. But I'm not yet finished with the ITK source tree, I have to admit 🤷 |
thewtex
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @N-Dekker !
Replaced code of the form
T var;
var.Fill(x);
with `auto var = itk::MakeFilled<T>(x);`
Following C++ Core Guidelines, Oct 3, 2024, "Always initialize an object",
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-always
Using Notepad++, Replace in Files, doing:
Find what: ^( [ ]+)([^ ].*)[ ]+(\w+);[\r\n]+\1\3\.Fill\(
Replace with: $1auto $3 = itk::MakeFilled<$2>\(
Filters: itk*Test*.cxx
[v] Match case
(*) Regular expression
Follow-up to
- pull request InsightSoftwareConsortium#4881
- pull request InsightSoftwareConsortium#4884
- pull request InsightSoftwareConsortium#4887
Replaced code of the form
T var;
var.Fill(x);
with `auto var = itk::MakeFilled<T>(x);`
Following C++ Core Guidelines, Oct 3, 2024, "Always initialize an object",
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-always
Using Notepad++, Replace in Files, doing:
Find what: ^( [ ]+)([^ ].*)[ ]+(\w+);[\r\n]+\1\3\.Fill\(
Replace with: $1auto $3 = itk::MakeFilled<$2>\(
Filters: itk*Test*.cxx
[v] Match case
(*) Regular expression
Follow-up to
- pull request InsightSoftwareConsortium#4881
- pull request InsightSoftwareConsortium#4884
- pull request InsightSoftwareConsortium#4887
Replaced code of the form
T var;
var.Fill(x);
with `auto var = itk::MakeFilled<T>(x);`
Following C++ Core Guidelines, Oct 3, 2024, "Always initialize an object",
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-always
Using Notepad++, Replace in Files, doing:
Find what: ^( [ ]+)([^ ].*)[ ]+(\w+);[\r\n]+\1\3\.Fill\(
Replace with: $1auto $3 = itk::MakeFilled<$2>\(
Filters: itk*Test*.cxx
[v] Match case
(*) Regular expression
Follow-up to
- pull request InsightSoftwareConsortium#4881
- pull request InsightSoftwareConsortium#4884
- pull request InsightSoftwareConsortium#4887
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ )(typename )?(.*Size.*[^ ])[ ]+(\w+);[\r\n]+ [ ]+\4\.Fill\(
Replace with: $1auto $4 = $3::Filled\(
Filters: itk*.h;itk*.hxx;itk*.cxx
[v] Match case
(*) Regular expression
Follow-up to pull request InsightSoftwareConsortium#4887
commit be250b8
"STYLE: Replace `size.Fill` with `auto size = Size::Filled` in tests"
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ )(typename )?(.*Size.*[^ ])[ ]+(\w+);[\r\n]+ [ ]+\4\.Fill\(
Replace with: $1auto $4 = $3::Filled\(
Filters: itk*.h;itk*.hxx;itk*.cxx
[v] Match case
(*) Regular expression
Follow-up to pull request InsightSoftwareConsortium#4887
commit be250b8
"STYLE: Replace `size.Fill` with `auto size = Size::Filled` in tests"
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ )(typename )?(.*Index.*[^ ])[ ]+(\w+);[\r\n]+ [ ]+\4\.Fill\(
Replace with: $1auto $4 = $3::Filled\(
Filters: itk*.h;itk*.hxx;itk*.cxx
[v] Match case
(*) Regular expression
Follow-up to pull request InsightSoftwareConsortium#4887
commit 504d63b
"STYLE: Replace `index.Fill` with `auto index = Index::Filled` in tests"
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ )(typename )?(.*Size.*[^ ])[ ]+(\w+);[\r\n]+ [ ]+\4\.Fill\(
Replace with: $1auto $4 = $3::Filled\(
Filters: itk*.h;itk*.hxx;itk*.cxx
[v] Match case
(*) Regular expression
Follow-up to pull request #4887
commit be250b8
"STYLE: Replace `size.Fill` with `auto size = Size::Filled` in tests"
Using Notepad++, Replace in Files, doing:
Find what: ^([ ]+ )(typename )?(.*Index.*[^ ])[ ]+(\w+);[\r\n]+ [ ]+\4\.Fill\(
Replace with: $1auto $4 = $3::Filled\(
Filters: itk*.h;itk*.hxx;itk*.cxx
[v] Match case
(*) Regular expression
Follow-up to pull request #4887
commit 504d63b
"STYLE: Replace `index.Fill` with `auto index = Index::Filled` in tests"
@jhlegarreta Here is one for the ITK Sphinx Examples, to begin with:
|
Replaced code of the form
with
Type var{};And specifically when having a local index or size variable, replaced code of the form
with
auto var = T::Filled(x);Following C++ Core Guidelines, Oct 3, 2024, "Always initialize an object",
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-always
Fill(0)with{}initializer for local variables in tests #4881