[Insight-developers] Proposal: Changing NumericTraits of vector types to use macros

Luis Ibanez luis.ibanez at kitware.com
Sat Nov 28 12:09:51 EST 2009


Hi Brad,

Yes, it is a good idea to propagate the use of Macros for other NumericTraits.

We took a historical detour in the development of the NumericTraits, and
only come to use the convenience macros with the most recently added
classes. It will be great to back-port this practice to the initial vector-like
classes.

As you pointed out, using the macros will result in more consistent and
maintainable code.


    Luis


---------------------------------------------------------------------------
On Fri, Nov 27, 2009 at 11:16 AM, Bradley Lowekamp
<blowekamp at mail.nih.gov> wrote:
> Hello,
> The next logical step after adding itk::NumericTraits<long long> is to also
> add it to all the vector types that also have numeric traits
> defined. Unfortunately I am lazy, and manually going through all these
> files, and close to 5,000 lines of code, to perform copy, paste, edit seems
> like too much work.
> Looking at itkNumericTratisVariableLengthVectorPixel.h:
> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/Common/itkNumericTraitsVariableLengthVectorPixel.h?revision=1.7&root=Insight&view=markup
> This seems to have an elegant macro which both does total template
> specialization and partial specialization when needed. It seems like much
> less work to implement similar macros in each file. One important change I'd
> make to similar macros for other types is to make the "ElementTypes" (which
> are needed for bcc) private so as to not add additional traits that have not
> been defined as part of the interface.
> As a "good" side effect, this will help maintainability and correct errors
> that currently exist in the traits. For example  the many numeric traits for
> for char vector types still have the char vector type as the PrintType,
> which is wrong because it'll print ASCII value instead of numbers. There are
> also missing trait types in many vector types as well. For example the
> CovariantVector traits are missing the FloatType.
>
> Brad
>
> ========================================================
>
> Bradley Lowekamp
>
> Lockheed Martin Contractor for
>
> Office of High Performance Computing and Communications
>
> National Library of Medicine
>
> blowekamp at mail.nih.gov
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
>
>


More information about the Insight-developers mailing list