$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Douglas Gregor (gregod_at_[hidden])
Date: 2002-11-11 09:28:41
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