On Fri, Feb 16, 2018 at 6:27 PM, Peter Dimov via Boost < boost@lists.boost.org> wrote:
Zach Laine wrote:
If someone else wants to navigate MSVC's limitations and submit patches,
I'll switch over to std::tuple in the interface, and maintain that work.
There's the option of stating everything in terms of boost::yap::tuple instead, which today would be an alias to hana::tuple. It's questionable exactly how much this will help users in the event of moving to std::tuple, but it might be possible for at least some user code to not need changes.
That's reasonable, but I think in the current state of things I'd like the user to know as soon as possible that Hana is in play. If std::tuple is the tuple of choice, I'd probably want the user to know that up-front as well.
On a completely unrelated note, have you considered the use case in which an expression supports two separate modes of evaluation? yap::evaluate doesn't take a "mode" parameter, and the way it's specified makes it hard to extend it with one.
More than that, it's effectively impossible. The idiomatic way to accomplish the same end is to transform() your expression differently for each case, instead of evaluating it differently. Zach