On Monday 11 November 2002 08:32 am, Alexander Nasonov wrote:
>   struct less : function<bool (const arg &, const arg &)>
>   {
>     template<typename Arg>
>     bool operator()(const Arg & a, const Arg & b) const
>     {
>       return a < b;
>     }
>   };

I like this a lot.

> Additionally, two types of control are desired:
> 1) Control over real types of arguments. It is a limitation of dynamic_any
> library that arguments must be converted to _one_ type before a call. But
> they can be of different types. Problem can be easily solved by adding
> additional arguments to the 'call' member-function:
>
>   template<typename Arg>
>   bool less::call(const Arg & a, const std::type_info & ta,
>                   const Arg & b, const std::type_info & tb) const
>   {
>     return a < b;
>   }

I'm not sure I see why we need this functionality, but perhaps I'm not being 
imaginative enough at this hour. Do you have an example where this would 
help?

> 2) Controlled behavior when the call cannot be made. I propose to make it
> over 'nocall' member-function. Default handler can be implemented inside
> the 'function' as a single throw statement. Those users who wish other
> behavior can override 'nocall'.

Sounds good.

>
> How do you like it?

Very much. This is a big step toward making it easier to construct polymorphic 
adaptors.

        Doug


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to