でテンプレート化されたクラスがあり、のピクセル タイプの<PIXEL>1 つと見なされます (今のところ、 または のいずれかのみであり、今後は同種のピクセル タイプのみをサポートする予定です)。boost::gilgray8_pixel_tgray16_pixel_trgb8_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はすでに同等のものを提供しているに違いありません...)