[Insight-users] typedef name cannot follow class/struct/union

Andreas Schuh andreas.schuh.84 at googlemail.com
Tue Feb 2 19:24:03 EST 2010


Well, how does the declaration of itk::UltimateSkeletonImageFilter look
like? Just the class declaration not all methods ...

Andreas

On Tue, Feb 2, 2010 at 7:07 PM, <Neil.Burdett at csiro.au> wrote:

>  Hi Andreas;
>
>
> const int Dimension = 3;
>
> typedef unsigned short DistancePixelType;
>
> typedef itk::Image< DistancePixelType, Dimension > DistanceImageType;
>
>
>
> Note that in the same file we have a number of other typedef that
> compile fine i.e.
>
> // Prepare the priority function
>
> typedef typename itk::DanielssonDistanceMapImageFilter<TOutputImage,
> DistanceImageType> DanielssonDistanceMapImageFilterType;
>
> typename DanielssonDistanceMapImageFilterType::Pointer
> danielssonDistanceMapFilter = DanielssonDistanceMapImageFilterType::New();
>
> ....
>
> // Compute a surfacic skeleton
>
> typedef typename itk::ParallelSkeletonImageFilter<TOutputImage,
> TOutputImage, itk::Connectivity<Dimension, 0> >
> ParallelSkeletonImageFilterType;
>
> typename ParallelSkeletonImageFilterType::Pointer parallelSkeletonFilter =
> ParallelSkeletonImageFilterType::New();
>
> ...
>
> // Delete all small components (extract the largest connected component in
> the image)
>
> typedef typename itk::LargestConnectedComponentImageFilter<TOutputImage,
> TOutputImage> LargestConnectedComponentImageFilterType;
>
> typename LargestConnectedComponentImageFilterType::Pointer
> largestConnectedComponentFilter =
> LargestConnectedComponentImageFilterType::New();
>
> etc...
>
>
>
> Maybe its an issue with itk::UltimateSkeletonImageFilter ??
>
> Neil
>
>
>
>  ------------------------------
> *From:* Andreas Schuh [mailto:andreas.schuh.84 at googlemail.com]
> *Sent:* Wednesday, 3 February 2010 9:41 AM
>
> *To:* Burdett, Neil (ICT Centre, Herston - RBWH)
> *Subject:* Re: [Insight-users] typedef name cannot follow
> class/struct/union
>
> Hi,
>
> How are TOutputImage, DistanceImageType and Dimension declared/defined? How
> is the template method/class itself declared?
>
> Andreas
>
> On Tue, Feb 2, 2010 at 5:44 PM, <Neil.Burdett at csiro.au> wrote:
>
>> Hi Andreas and Bill,
>>                   Thanks for the replies. As mentioned in my previous post
>> if I remove the "typename" I continue to get the same error:
>>
>> "error C2242: typedef name cannot follow class/struct/union"
>>
>> You are correct that the second line after this is a cut and paste error
>> so the actual code is:
>>
>>  // Compute the seed image, by closing cavities and holes with an ultimate
>> skeleton of the cuboid image
>>  typedef itk::UltimateSkeletonImageFilter<TOutputImage, TOutputImage,
>> itk::Connectivity<Dimension, 0>, DistanceImageType > SeedSkeletonFilterType;
>>
>>  typename SeedSkeletonFilterType::Pointer seedSkeletonFilter =
>> SeedSkeletonFilterType::New();
>>  seedSkeletonFilter->SetInput(cuboidImage->GetOutput());
>>
>>  seedSkeletonFilter->SetPriorityImage(distanceInvertIntensityFilter->GetOutput());
>>  seedSkeletonFilter->SetInhibitImage(parallelSkeletonFilter->GetOutput());
>>  try{
>>    seedSkeletonFilter->Update();
>>  } catch(itk::ExceptionObject &ex) {
>>    throw itk::ExceptionObject("milxTopologicalHolesFilling", 0,
>> std::string("Topological holes filling.. seed ultimate skeleton failed: ") +
>> ex.GetDescription());
>>  }
>>
>> Anymore ideas? This error occurs on both VS 2005 and VS 2008
>>
>> Cheers
>> Neil
>>
>> -----Original Message-----
>> From: Andreas Schuh [mailto:andreas.schuh.84 at googlemail.com]
>> Sent: Tuesday, 2 February 2010 2:49 PM
>> To: Burdett, Neil (ICT Centre, Herston - RBWH)
>>  Cc: itk
>> Subject: Re: [Insight-users] typedef name cannot follow class/struct/union
>>
>> Hi Neil,
>>
>> Try
>>
>> typedef  itk::UltimateSkeletonImageFilter<TOutputImage, TOutputImage,
>> itk::Connectivity<Dimension, 0>, DistanceImageType > SeedSkeletonFilterType;
>>
>> There is no typename specified necessary here. Actually, I think it's
>> wrong to use it.
>>
>> The second line after this one in your mail might just be a copy-and-paste
>> relict while you were composing the mail. Because it doesn't make sense at
>> all ...
>>
>> The use of the second typename for the pointer type declaration is fine
>> and for compilers like the VC6 also necessary.
>>
>> Andreas
>>
>>
>> On Feb 1, 2010, at 11:20 PM, <Neil.Burdett at csiro.au> wrote:
>>
>> > Hi Bill and Dan,
>> >        thanks for the reply, but removing typename, or replacing it with
>> ITK_TYPENAME gives exactly the same error in visual studio 2008;
>> >
>> > "error C2242: typedef name cannot follow class/struct/union"
>> >
>> > The full extract of code I'm using is;
>> >
>> >  // Compute the seed image, by closing cavities and holes with an
>> ultimate skeleton of the cuboid image
>> >  typedef typename itk::UltimateSkeletonImageFilter<TOutputImage,
>> TOutputImage, itk::Connectivity<Dimension, 0>, DistanceImageType >
>> SeedSkeletonFilterType;
>> >  itk::UltimateSkeletonImageFilter<TOutputImage, TOutputImage,
>> itk::Connectivity<Dimension, 0>, DistanceImageType > SeedSkeletonFilterType;
>> >
>> >  typename SeedSkeletonFilterType::Pointer seedSkeletonFilter =
>> SeedSkeletonFilterType::New();
>> >  seedSkeletonFilter->SetInput(cuboidImage->GetOutput());
>> >
>>  seedSkeletonFilter->SetPriorityImage(distanceInvertIntensityFilter->GetOutput());
>> >
>>  seedSkeletonFilter->SetInhibitImage(parallelSkeletonFilter->GetOutput());
>> >  try{
>> >    seedSkeletonFilter->Update();
>> >  } catch(itk::ExceptionObject &ex) {
>> >    throw itk::ExceptionObject("milxTopologicalHolesFilling", 0,
>> std::string("Topological holes filling.. seed ultimate skeleton failed: ") +
>> ex.GetDescription());
>> >  }
>> >
>> > Neil
>> >
>> > -----Original Message-----
>> > From: Bill Lorensen [mailto:bill.lorensen at gmail.com]
>> > Sent: Monday, 1 February 2010 11:46 PM
>> > To: Burdett, Neil (ICT Centre, Herston - RBWH)
>> > Cc: insight-users at itk.org
>> > Subject: Re: [Insight-users] typedef name cannot follow
>> class/struct/union
>> >
>> > I think the typename can be removed on both Windows and linux. My
>> > general rule for typename is that it is required if there are no
>> > template variables.
>> >
>> > For example
>> >
>> > typedef Foo<bar> FooBarType;
>> >
>> > typedef typename Foo::Pointer FooPointer;
>> >
>> > On Sun, Jan 31, 2010 at 11:39 PM,  <Neil.Burdett at csiro.au> wrote:
>> >> Hi,
>> >>
>> >>     I am currently porting an application from Ubuntu to windows. The
>> line
>> >> of code below compiles on Ubuntu but not on visual studio...
>> >>
>> >>
>> >>
>> >>   typedef typename itk::UltimateSkeletonImageFilter<TOutputImage,
>> >> TOutputImage, itk::Connectivity<Dimension, 0>, DistanceImageType >
>> >> SeedSkeletonFilterType;
>> >>
>> >>
>> >>
>> >> I receive the error in visual studio 2008 "error C2242: typedef name
>> cannot
>> >> follow class/struct/union"
>> >>
>> >>
>> >>
>> >> Any help would be appreciated.
>> >>
>> >>
>> >>
>> >> Neil
>> >>
>> >> _____________________________________
>> >> 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://www.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-users
>> >>
>> >>
>> > _____________________________________
>> > 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://www.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-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20100202/d6c12695/attachment.htm>


More information about the Insight-users mailing list