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, or _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 mailing list proto@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/proto