Subject: Re: [proto] Hold terminals by "smart" reference
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2012-06-03 09:23:08
On 03/06/2012 02:59, Eric Niebler wrote:
> There is no way to hook proto::value to return anything but what is
> stored in the terminal. It's a very dumb, low-level function. You could
> easily define your own value function that does something smarter, tho.
I'm currently doing it with my own function, but that means I need to
use my own value instead of Proto's everywhere (value, result_of::value,
Plus I don't have a good way to distinguish between a terminal of
shared_ptr<T> and a terminal of T which is held through a shared_ptr.
I was considering specializing something like expr<Tag,
term_shared<Arg>, 0> and basic_expr<Tag, term_shared<Arg>, 0> to do
this, but it appears I also need to change proto::value itself to call a
function instead of returning child0 directly.
Proto list run by eric at boostpro.com