替代的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