View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0011086ITKpublic2010-08-03 15:172010-10-21 12:31
ReporterBradley Lowekamp 
Assigned ToBradley Lowekamp 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0011086: Numeric Traits for array like types should use partial template specialization
DescriptionCurrently there is a big nasty macro used to define the numeric traits for array like types.

//
// First we define a macro that can be customized to be used for a sequence of
// specializations or for a generic template instantiation. This Macro covers
// the implementation for both partial specialization and total
// specializaion by defining certain macros.
//
#define itkNumericTraitsGenericArrayMacro(GENERIC_ARRAY, T, D) \

With compiler support for C++98, all compiler should support partial template specialization
Additional InformationA quickly generated list of the macros

blowek1$ grep -R -E \#define\ itkNumericTraits[A-Za-z0-9]+Macro ./
./Common/itkNumericTraitsDiffusionTensor3DPixel.h:#define itkNumericTraitsDiffusionTensor3DMacro(GENERIC_ARRAY, T) \
./Common/itkNumericTraitsDiffusionTensor3DPixel.h:#define itkNumericTraitsDiffusionTensor3DMacro(GENERIC_ARRAY, T) \
./Common/itkNumericTraitsFixedArrayPixel.h:#define itkNumericTraitsGenericArrayMacro(GENERIC_ARRAY, T, D) \
./Common/itkNumericTraitsFixedArrayPixel.h:#define itkNumericTraitsGenericArrayScalarsDimensionsMacro( GENERIC_ARRAY ) \
./Common/itkNumericTraitsFixedArrayPixel.h:#define itkNumericTraitsGenericArrayDimensionsMacro( GENERIC_ARRAY, T ) \
./Common/itkNumericTraitsRGBAPixel.h:#define itkNumericTraitsRGBAPixelMacro(T) \
./Common/itkNumericTraitsRGBPixel.h:#define itkNumericTraitsRGBPixelMacro(T) \
./Common/itkNumericTraitsVariableLengthVectorPixel.h:#define itkNumericTraitsVariableLengthVectorPixelMacro(T) \
TagsNo tags attached.
Resolution Date
Sprint
Sprint Status
Attached Files

 Relationships
child of 0011084closedBradley Lowekamp cmakedefine ITK_TYPE_USE_LONG_LONG is not needed 

  Notes
(0021614)
Bradley Lowekamp (developer)
2010-08-03 15:20

This issue should should be addressed after 11084 due to potential conflicts.
(0021633)
Bradley Lowekamp (developer)
2010-08-04 10:20

This entails the removal of the following in itkCOnfigure.h.in


/*
 * TODO: this should be changed to a compile time test for the needed
 * feature and then defined as a cmake variable
 */
#if !(defined( _MSC_VER ) && ( _MSC_VER < 1310 ))
#define ITK_USE_NUMERIC_TRAITS_PARTIAL_SPECIALIZATION
#endif
(0021634)
Bradley Lowekamp (developer)
2010-08-04 10:22

Related is the unused CMakeFlag ITK_SUPPORTS_TEMPLATE_PARTIAL_SPECIALIZATION in CMakeLists.txt:



#
# See if compiler support template partial specialization
#
TRY_COMPILE(ITK_SUPPORTS_TEMPLATE_PARTIAL_SPECIALIZATION
      ${ITK_BINARY_DIR}/CMakeTmp
      ${ITK_SOURCE_DIR}/CMake/itkTestTemplatePartialSpecialization.cxx
      OUTPUT_VARIABLE ITK_SUPPORTS_TEMPLATE_PARTIAL_SPECIALIZATION_OUTPUT)
(0021766)
Bradley Lowekamp (developer)
2010-08-16 08:50

The change was committed:
http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=dc73e7ca0c1bbd5c194426453f881d62854a3eeb;hp=a31864fdf47fd7b460d4280f96ccd48ce3aa08e6 [^]
(0021768)
Bradley Lowekamp (developer)
2010-08-16 08:51

The commit seems to be working with out issue

 Issue History
Date Modified Username Field Change
2010-08-03 15:17 Bradley Lowekamp New Issue
2010-08-03 15:19 Bradley Lowekamp Relationship added child of 0011084
2010-08-03 15:20 Bradley Lowekamp Note Added: 0021614
2010-08-04 10:20 Bradley Lowekamp Note Added: 0021633
2010-08-04 10:22 Bradley Lowekamp Note Added: 0021634
2010-08-11 11:07 Bradley Lowekamp Status new => assigned
2010-08-11 11:07 Bradley Lowekamp Assigned To => Bradley Lowekamp
2010-08-16 08:50 Bradley Lowekamp Note Added: 0021766
2010-08-16 08:50 Bradley Lowekamp Note Added: 0021767
2010-08-16 08:50 Bradley Lowekamp Note Deleted: 0021767
2010-08-16 08:51 Bradley Lowekamp Note Added: 0021768
2010-08-16 08:51 Bradley Lowekamp Status assigned => resolved
2010-08-16 08:51 Bradley Lowekamp Resolution open => fixed
2010-10-21 12:31 Gabe Hart Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team