Я получаю странную ошибку. У меня есть функция следующей подписи:
template <typename DATA, DATA max>
static bool ConvertCbYCrYToRGB(const Characteristic space, const DATA *input, DATA *output, const int pixels) {
Который позже называется так:
case kByte:
return ConvertCbYCrYToRGB<U8, 0xFF>(space, (const U8 *)input, (U8 *)output, pixels);
case kWord:
return ConvertCbYCrYToRGB<U16, 0xFFFF>(space, (const U16 *)input, (U16 *)output, pixels);
case kInt:
return ConvertCbYCrYToRGB<U32, 0xFFFFFFFF>(space, (const U32 *)input, (U32 *)output, pixels);
case kFloat:
return ConvertCbYCrYToRGB<R32, FLT_MAX>(space, (const R32 *)input, (R32 *)output, pixels);
case kDouble:
return ConvertCbYCrYToRGB<R64, DBL_MAX>(space, (const R64 *)input, (R64 *)output, pixels);
U * и R * являются псевдонимами для беззнакового целого и типа с плавающей запятой соответственно. Что странно, так это то, что все целые числа работают отлично, а числа с плавающей точкой терпят неудачу с несколько загадочной ошибкой:
DPXColorConverter.cpp:171: error: no matching function for call to ‘ConvertCbYCrYToRGB(const dpx::Characteristic&, const dpx::R32*, dpx::R32*, const int&)’
Есть мысли?