if (Type == ISMRMRD::ISMRMRD_USHORT)\
Operation ((const ISMRMRD::Image<unsigned short>*) Arguments, \
##__VA_ARGS__);\
else if (Type == ISMRMRD::ISMRMRD_SHORT)\
Operation ((const ISMRMRD::Image<short>*) Arguments, ##__VA_ARGS__);\
else if (Type == ISMRMRD::ISMRMRD_UINT)\
Operation ((const ISMRMRD::Image<unsigned int>*) Arguments, ##__VA_ARGS__);\
else if (Type == ISMRMRD::ISMRMRD_INT)\
Operation ((const ISMRMRD::Image<int>*) Arguments, ##__VA_ARGS__);\
else if (Type == ISMRMRD::ISMRMRD_FLOAT)\
Operation ((const ISMRMRD::Image<float>*) Arguments, ##__VA_ARGS__);\
else if (Type == ISMRMRD::ISMRMRD_DOUBLE)\
Operation ((const ISMRMRD::Image<double>*) Arguments, ##__VA_ARGS__);\
else if (Type == ISMRMRD::ISMRMRD_CXFLOAT)\
Operation ((const ISMRMRD::Image< std::complex<float> >*) Arguments, \
##__VA_ARGS__);\
else if (Type == ISMRMRD::ISMRMRD_CXDOUBLE)\
Operation ((const ISMRMRD::Image< std::complex<double> >*) Arguments, \
##__VA_ARGS__);\
else\
throw std::domain_error("unknown data type in IMAGE_PROCESSING_SWITCH_CONST");