Namespaces
Variants
Actions

Talk:cpp/types/is copy assignable

From cppreference.com

CopyAssignable also requires that the type of an assignment expression is T& (or, an lvalue of type T if you like). That is, the conceptCopyAssignable has stricter requirements than what the trait is_copy_assignable checks. On the other hand, Walter E. Brown implemented this check explicitly in his implementation of is_copy_assignable in the talk Modern Template Metaprogramming - A Compendium, Part II. I could not find any defect report related to this issue, nor can I find this check in the spec of is_copy_assignable in C++11 IS, C++14 IS nor in a recent github draft.

Since this is confusing, it might be worth also looking for discussions if this is intentional, or broken because of backwards-compatibility, or maybe even an oversight in the Standard.

dyp --84.171.65.50 08:58, 8 March 2015 (PDT)

I never thought about it but you're right. The trait also doesn't (and can't!) check the CopyAssignable requirement that the argument is unmodifed. I added a note. --Cubbi (talk) 09:34, 8 March 2015 (PDT)
close