This repository was archived by the owner on Dec 31, 2018. It is now read-only.
Open
Conversation
Add the 'Module_' prefix to the module's flags so that they can be grouped together with the module itself by the CMake GUI. Change the 'Examples' and 'Documentation' folder names to 'examples' and 'doc' respectively. Make the module's example and documentation build flags dependent on ITK's BUILD_EXAMPLES and BUILD_DOCUMENTATION flags: if the latter are set to OFF, the module's options will remain hidden and defaulted to OFF.
Use the ITK_DISALLOW_COPY_AND_ASSIGN macro to save typing the copy and assignment method disallow statements. Use initialization lists: initialize the missing m_VertexCount ivar to zero; SmartPointer initialize themselves to the null pointer. Print all member variables. Use the itkPrintSelfObjectMacro macro to print SmartPointers. Remove unnecessary/ducplicate/empty Doxygen-style, out-of-method-body documentation from the implementation file/use it to improve the method documentation in the header file. Use the 'this' keyword when calling self functions. Make flow control variables have a more local scope. Start comments with capital letters.
Exercise basic object methods. Hence, remove the unncessary calls to the GetNameOfClass or Print methods of the class instance. Exercise all Set/Get methods using the TEST_SET_GET_VALUE macro. Remove unnecessary print of input mesh vertex and cell count. Refactor the test in order to improve the readability: create a helper function to parse the input vector fields. Other style changes for the sake of consistency across ITK: return codes, white spaces, comment styles, etc.
ENH: Improve code coverage for itk::VectorFieldPCA.
STYLE: Improve the itkVectorFieldPCA class style.
Add the #ifndef ITK_MANUAL_INSTANTIATION statement for explicit object instantiation.
…tion ENH: Include the ITK_MANUAL_INSTANTIATION macro.
…lagsAndSubdirs ENH: Honor the ITK conventions to name modules, flags and folders.
Require CMake minimum version to be 3.9.5 following ITKv5 requiring C++11: https://discourse.itk.org/t/minimum-cmake-version-update/585
ENH: Require cmake minimum version to be 3.9.5.
ITKv5 removed deprecated interfaces.
Provide remove virtual and override Use clang-tidy to add ITK_OVERRIDE, and to remove redundant virtual on functions. cd ../ITK; clang-tidy -p ITK-clangtidy $find Modules/[A-J]* -name *.cxx |fgrep -v ThirdParty) -checks=-*,modernize-use-override -header-filter=.* -fix clang-tidy -p ITK-clangtidy $(find Modules/[K-Z]* -name *.cxx |fgrep -v ThirdParty) -checks=-*,modernize-use-override -header-filter=.* -fix https://stackoverflow.com/questions/39932391/virtual-override-or-both-c When you override a function you don't technically need to write either virtual or override. The original base class declaration needs the keyword virtual to mark it as virtual. In the derived class the function is virtual by way of having the ¹same type as the base class function. However, an override can help avoid bugs by producing a compilation error when the intended override isn't technically an override. E.g. that the function type isn't exactly like the base class function. Or that a maintenance of the base class changes that function's type, e.g. adding a defaulted argument. In the same way, a virtual keyword in the derived class can make such a bug more subtle, by ensuring that the function is still is virtual in further derived classes. So the general advice is, virtual for the base class function declaration. This is technically necessary. Use override (only) for a derived class' override. This helps with maintenance.
git grep -l "ITK_OVERRIDE" | fgrep -v itk_compiler_detection.h | fgrep -v CMakeLists.txt |fgrep -v .cmake | xargs sed -i '' -e "s/ITK_OVERRIDE/override/g"
ENH: Providing ITKv5 updates for C++11
Move `ITK_DISALLOW_COPY_AND_ASSIGN` calls to public section following the discussion in https://discourse.itk.org/t/noncopyable If legacy (pre-macro) copy and assing methods existed, subsitute them for the `ITK_DISALLOW_COPY_AND_ASSIGN` macro.
…licSection COMP: Move ITK_DISALLOW_COPY_AND_ASSIGN calls to public section.
As agreed in: https://discourse.itk.org/t/cmake-update/870/ Set the `cmake_minimum_required` to version **3.10.2**.
COMP: Set the minimum required CMake version to 3.10.2.
Add CircleCI configuration files and badges.
ENH: Add CI configuration files.
BUG: Add missing CTestConfig.cmake
Prefer `transfer.sh` over `file.io` for macOS package upload.
DOC: Add missing LICENSE file
Improve `README` file: - Split the document in section. - Improve the documentation layout referencing the IJ article. - Cross reference the `LICENSE` file.
…kages ENH: Use transfer.sh for macOS package upload.
STYLE: Improve README file.
Do not use `rawgit.com` as part of the curl command argument when generating the Python package. It is no longer supported. Use `raw.githubusercontent` instead.
COMP: Do not use rawgit.com.
Prefer C++11 type alias over typedef for the reasons stated here: http://review.source.kitware.com/#/c/23103/
The `ato[if]` functions do not provide mechanisms for distinguishing between `0` and the error condion where the input can not be converted. `std::sto[id]` provides exception handling and detects when an invalid string attempts to be converted to an [integer|double]. `ato[if]()` - **Con**: No error handling. - **Con**: Handle neither hexadecimal nor octal. The use of `ato[if]` in code can cause it to be subtly broken. `ato[if]` makes two very big assumptions indeed: - The string represents an integer/floating point value. - The integer can fit into an int. As stated in http://review.source.kitware.com/#/c/23738/
STYLE: Prefer C++11 type alias over typedef.
…mericFunctions STYLE: Prefer error checked std::sto[id] over ato[if].
Prefer C++ over aliased names vnl_math_[min|max] -> std::[min|max] Prefer vnl_math::abs over deprecated alias vnl_math_abs In all compilers currently supported by VXL, vnl_math_[min|max] could be replaced with std::[min|max] without loss of functionality. This also circumvents part of the backwards compatibility requirements as vnl_math_ has been recently replaced with a namespace of vnl_math::. Since Wed Nov 14 07:42:48 2012: The vnl_math_* functions use #define aliases to their vnl_math::* counterparts in the "real" vnl_math:: namespace. The new syntax should be backwards compatible to VXL versions as old as 2012. Prefer to use itk::Math:: over vnl_math:: namespace
Now that all supported compilers simply result in vcl_* being an alias to exactly one function signature (i.e. namely the one provided in the std:: namespace) there is no need to use the vcl_ aliases. The vcl_XXX.h headers used in these files are simple files that only include the c++11 standard <XXX> headers that were already included, thereby making these lines of code completely redundant. Dependance on VCL_CHAR_IS_UNSIGNED variable was removed in favor of std::numeric_limits<char>::is_signed Replaced VCL_LIMIT with NUM_LIMIT to reflect the change made from vcl to std::numeric_limits vxl/scripts/VCL_ModernizeNaming.py
Author
|
@fbudin69500 Is this project still active? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.