http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52363
--- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-04-18 13:01:37 UTC --- And this is enough to see the inconsistency vs -pedantic: #include <type_traits> #include <cassert> struct proxy { void operator=(int const&); void operator=(int &&) const; }; int main() { assert( (std::is_assignable<proxy, int>::value) ); }