У меня есть класс, настроенный на <PIXEL>
, предположительно, один из типов пикселей boost::gil
(на данный момент только gray8_pixel_t
или gray16_pixel_t
, и я ожидаю, что поддержу только однородные типы пикселей, например rgb8_pixel_t
в будущем).
Класс должен получить unsigned char
или unsigned short
в зависимости от типа пикселя; Я предполагаю, что это похоронено где-то в классе пикселей, но ни один из PIXEL::value_type
, PIXEL::channel_type
или PIXEL::channel_type::value type
не кажется тем, что я хочу.
В чем прикол?
(Конечно, я мог бы использовать косвенное обращение к типу через некоторые специализированные вспомогательные структуры для получения этой информации:
template <typename PIXEL> struct types_for
{};
template <> struct types_for<boost::gil::gray8_pixel_t>
{typedef unsigned char channel_type;};
template <> struct types_for<boost::gil::gray16_pixel_t>
{typedef unsigned short channel_type;};
но, конечно же, GIL должен предоставить что-то эквивалентное, если бы я мог просто найти это ...)