[Insight-developers] Statistics class changes in current CVS bothers GCC 4.0.1

Kent Williams norman-k-williams at uiowa.edu
Fri Sep 30 12:15:43 EDT 2005


I ran into a little problem this morning compiling ITK tests.  This may 
be compiler specific, but GCC 4.0.1 seems to need some help to pull 
typedefs down from the superclass.  The following patch gets me a clean 
compile at least, but since I've never worked on any of this code I am 
leery of just checking in my changes.

The error message I get is 'TotalFrequency does not define a type', and 
in looking through the headers, it seems that these classes don't 
locally typedef TotalFrequncyType, but the superclass does.

Index: itkHistogram.h
===================================================================
RCS file: /cvsroot/Insight/Insight/Code/Numerics/Statistics/itkHistogram.h,v
retrieving revision 1.48
diff -c -r1.48 itkHistogram.h
*** itkHistogram.h    30 Sep 2005 14:14:18 -0000    1.48
--- itkHistogram.h    30 Sep 2005 16:08:15 -0000
***************
*** 118,123 ****
--- 118,126 ----
    /** Frequency value type from superclass */
    typedef typename FrequencyContainerType::FrequencyType FrequencyType ;
 
+   /** total frequency type from superclass */
+   typedef typename Superclass::TotalFrequencyType TotalFrequencyType;
+
    /** Index typedef support. An index is used to access pixel values. */
    typedef itk::Index< VMeasurementVectorSize >  IndexType;
    typedef typename IndexType::IndexValueType  IndexValueType;
Index: itkListSample.h
===================================================================
RCS file: 
/cvsroot/Insight/Insight/Code/Numerics/Statistics/itkListSample.h,v
retrieving revision 1.25
diff -c -r1.25 itkListSample.h
*** itkListSample.h    30 Sep 2005 14:14:18 -0000    1.25
--- itkListSample.h    30 Sep 2005 16:08:16 -0000
***************
*** 62,67 ****
--- 62,68 ----
    typedef typename Superclass::MeasurementVectorType 
MeasurementVectorType;
    typedef typename Superclass::MeasurementType MeasurementType;
    typedef typename Superclass::FrequencyType FrequencyType ;
+   typedef typename Superclass::TotalFrequencyType TotalFrequencyType;
    typedef typename Superclass::InstanceIdentifier InstanceIdentifier;
    typedef typename Superclass::SearchResultVectorType 
SearchResultVectorType ;
 
Index: itkListSampleBase.h
===================================================================
RCS file: 
/cvsroot/Insight/Insight/Code/Numerics/Statistics/itkListSampleBase.h,v
retrieving revision 1.9
diff -c -r1.9 itkListSampleBase.h
*** itkListSampleBase.h    28 Jul 2005 18:36:16 -0000    1.9
--- itkListSampleBase.h    30 Sep 2005 16:08:16 -0000
***************
*** 61,67 ****
    typedef typename Superclass::MeasurementType MeasurementType;
    typedef typename Superclass::FrequencyType FrequencyType ;
    typedef typename Superclass::InstanceIdentifier InstanceIdentifier;
!
    /** Vector of InstanceIdentifiers used for returning search
     * results. */
    typedef std::vector< InstanceIdentifier > SearchResultVectorType ;
--- 61,67 ----
    typedef typename Superclass::MeasurementType MeasurementType;
    typedef typename Superclass::FrequencyType FrequencyType ;
    typedef typename Superclass::InstanceIdentifier InstanceIdentifier;
!   typedef typename Superclass::TotalFrequencyType TotalFrequencyType;
    /** Vector of InstanceIdentifiers used for returning search
     * results. */
    typedef std::vector< InstanceIdentifier > SearchResultVectorType ;



More information about the Insight-developers mailing list