Difference between revisions of "Documentation/Labs"

From Slicer Wiki
Jump to: navigation, search
Line 44: Line 44:
  
 
== Compilers & IDE ==
 
== Compilers & IDE ==
* Modernize to c++11
+
* [[{{FULLPAGENAME}}/ModernizeC++|Modernize to c++11 and beyond]]
 
 
'''The use of auto'''
 
 
 
  run-clang-tidy.py -checks=-*,modernize-use-auto  -header-filter=.* -fix
 
 
 
The automatic fix use auto in cases where static_cast is used:
 
 
 
  - int a = static_cast<int>(something);
 
  + auto a = static_cast<int>(something);
 
 
 
No much gain on this particular case, however, when using iterators and other verbose types, it really helps readability.
 
 
 
The change should be discussed with the main developers to reach a consensus. VTK and ITK are using auto in a lot of cases.
 
 
 
 
 
 
 
'''Move not implemented constructors and assignment operators to the public interface'''
 
 
 
Now that we use = delete, we don't need the constructors and assignment operator to be in the private interface.
 
Moving them to the public interface is better. Including better integrations with IDE's.
 
 
 
 
 
'''Other modernizers'''
 
  clang-tidy --list-checks -checks='*' | grep "modernize"
 
    modernize-avoid-bind
 
    modernize-deprecated-headers
 
    modernize-loop-convert
 
    modernize-make-shared
 
    modernize-make-unique
 
    modernize-pass-by-value
 
    modernize-raw-string-literal
 
    modernize-redundant-void-arg
 
    modernize-replace-auto-ptr
 
    modernize-replace-random-shuffle
 
    modernize-return-braced-init-list
 
    modernize-shrink-to-fit
 
    modernize-unary-static-assert
 
    modernize-use-auto # ToDiscuss
 
    modernize-use-bool-literals
 
    modernize-use-default-member-init
 
    modernize-use-emplace # easy!
 
    modernize-use-equals-default # DONE
 
    modernize-use-equals-delete # DONE
 
    modernize-use-noexcept
 
    modernize-use-nullptr # DONE
 
    modernize-use-override # DONE
 
    modernize-use-transparent-functors
 
    modernize-use-uncaught-exceptions
 
    modernize-use-using # Better style, to discuss.
 
 
 
Check https://github.com/InsightSoftwareConsortium/ITK/tree/master/Utilities/ITKv5Preparation for a list of commands used in the
 
ITKv5 transition.
 
  
 
== Virtual Machines ==
 
== Virtual Machines ==

Revision as of 15:14, 12 July 2019

Home < Documentation < Labs

This is the place where we will keep track of our experiments and projects.

On-going

Roadmap

Internals

Libraries

Python

Compilers & IDE

Virtual Machines

Documentation

Tutorials

Source code management

Extension

Functionalities

Packaging

  • [[Documentation/Labs/HomebrewCask|Homebrew Cask]

Completed

Extension

Internals

Libraries

Python

Compilers & IDE

Modules

Tutorials testing

Debug

Internals


Abandoned