If you look at `hasElaborateAssign`, you'll see it also checks for a `ref` opAssign method via a simple `lvalueOf` function (again I really look forward to that pull from Dennis being pulled soon, unless it's been pulled already). The cast() here forces the value to be an r-value, which might mean you won't catch opAssign that takes a `ref` and `mustEmplace` will be false. Unless I'm wrong could you fix this and add a test-case with an opAssign that takes a `ref` parameter?