COMP: Use the c++ 17 common [[fallthrough]] attribute#4580
COMP: Use the c++ 17 common [[fallthrough]] attribute#4580thewtex merged 1 commit intoInsightSoftwareConsortium:masterfrom
Conversation
[[fallthrough]](C++17) indicates that the fall through from the previous case label is intentional and should not be diagnosed by a compiler that warns on fall-through (attribute specifier) Remove complicated #ifdef macro logic to enforce compiler specific behaviors.
4c5b6a3 to
9243a07
Compare
N-Dekker
left a comment
There was a problem hiding this comment.
Thanks, Hans! Interestingly GitHub thinks that [[fallthrough]](C++17) links to https://github.com/InsightSoftwareConsortium/ITK/pull/C++17 😸 Anyway, no problem, approved 👍
|
This change looks good. How close are we to 5.4? Do we have another RC? Are we planning some kind of new feature freeze soon? This seems like using a new C++17 feature. How certain are we that all compilers support this feature correctly? |
|
@blowekamp I do think all compilers that support c++17 do support this. It is not an onerous addition to the language. Many compilers have used similar non-standard methods. c++17 standardized the mechanism. I have not looked at "all compilers", but the common ones have definitive support for this feature. |
ITK 5.4RC3 was tagged recently, but an issue was discovered immediately -- 5.4RC4 will be tagged and announced with the fix next week. We should not add major new features until 5.4.0, but this should be fine -- we have had a C++17 requirement for a while, and it is passing all CI. |
|
Yes, this change "should" be fine. Let us get it in for 5.4rc4? |
…fer-fallthrough COMP: Use the c++ 17 common [[fallthrough]] attribute
[fallthrough] indicates that the fall through from the previous case label is intentional and should not be diagnosed by a compiler that warns on fall-through (attribute specifier)
Remove complicated #ifdef macro logic to enforce compiler specific behaviors.
PR Checklist