我有<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肯定必须提供相同的东西,如果我能找到它......)
答案 0 :(得分:1)
啊哈......这似乎可以解决问题:
typename boost::gil::channel_type<PIXEL>::type