Every Phoenix actor has three `operator=` functions. One is a normal copy assignment, and the other two are for generating lazy assignment functions (one takes a mutable actor, and the other an immutable one). Gcc is selecting the copy assignment in this instance, and Clang is selecting the lazy assignment function. I believe Gcc is correct in this circumstance, because the copy-assignment function is not templated and therefore should take precedence according to the overload resolution rules. So I _think_ this is a bug in Clang.
Thanks for the explanation!
This came up in boost log over a year ago; Joel and I thought it was a bug in Clang at the time. We should've provided them with a minimal example to see their answer (maybe Joel did?) - I will reduce this further and provide it to them unless you feel the need to.
Please go ahead - thanks! If you end up filing a clang bug, could you share
the bug number here?
By the way, to explain _why_ I'm trying to assign the actor: I'm not trying
to assign it explicitly, but I'm capturing it by value in a lambda, and this
seems to require the assignment operator:
#include <string>
#include