Boost logo

Boost :

Subject: Re: [boost] [GIL] scoped_channel_value type
From: Lubomir Bourdev (lbourdev_at_[hidden])
Date: 2010-07-22 11:26:18

Hi Fabien,

Notice that, even after Christian's changes, ChannelValue::base_channel_t
will not always be available because ChannelValue could be a built-in type.

So if you want to extract this, you will have to special-case
scoped_channel_value anyway. So in this case you don't need a typedef
You can just define a specialization like this:

Template <typename ChannelValue>
Struct base_channel_value {
   typedef ChannelValue type;

Template <typename ChannelValue, typename MinV, typename MaxV>
Struct base_channel_value<scoped_channel_value<ChannelValue, MinV, MaxV> >
   typedef ChannelValue type;


On 7/22/10 7:05 AM, "fabien.castan_at_[hidden]" <fabien.castan_at_[hidden]> wrote:

> Hi,
> I would like to get the value type of the channels depending on an image view.
> So I can get the scoped channel type, from MyView type, like this:
> typedef typename boost::gil::channel_type<MyView>::type MyScopedChannel;
> But I can't get the primitive type used by the scoped channel.
> For example, if the type is scoped_channel_value<float,float_zero,float_one>,
> I can't get the float type.
> /// \ingroup ScopedChannelValue
> /// \brief A channel adaptor that modifies the range of the source channel.
> Models: ChannelValueConcept
> template <typename BaseChannelValue, // base channel (models
> ChannelValueConcept)
> typename MinVal, typename MaxVal> // classes with a static apply()
> function returning the minimum/maximum channel values
> struct scoped_channel_value {
> typedef BaseChannelValue base_channel_t; //< missing typedef
> //...
> }
> So this will allows to use:
> typedef typename boost::gil::channel_type<MyView>::type::base_channel_t
> ChannelBaseType;
> Are you agree to add this typedef ?
> Best regards,
> Fabien Castan
> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at