替代的typedef或正确的方式来使用的typedef与其他是否

我有以下条件:替代的typedef或正确的方式来使用的typedef与其他是否

if(type == 1) 

{

typedef itk::Image<unsigned char, 3> itkImageType;

itkImageType::Pointer image;

image =Open<itkImageType>(filename);

writeimage->Graft(image);

}

else if(type == 2)

{

typedef itk::Image<unsigned char, 3> itkImageType;

itkImageType::Pointer image;

image =Open<itkImageType>(filename);

writeimage->Graft(image);

}

有10例,之后的typedef的东西是在所有其他如果 - 常见。我想删除这段代码的重复,但由于typedef具有本地范围,我必须这样做。有没有办法做到这一点?

回答:

只是把常见的东西放在一个函数中。这是什么功能:

template <typename PixelType> 

void doStuffAndOpen() {

//Some stuff which use Pixel Type

Open<PixelType>(filename);

}

// and then wherever you want to do stuff with the PixelType

switch (type) {

case 1:

doStuffAndOpen<unsigned char>();

break;

case 2:

doStuffAndOpen<unsigned int>();

break;

}

以上是 替代的typedef或正确的方式来使用的typedef与其他是否 的全部内容, 来源链接: utcz.com/qa/263537.html

回到顶部