Talk:cpp/types/is move constructible
From cppreference.com
Checks whether a type is MoveConstructible, i.e. has an accessible explicit or implicit move constructor.
That's not correct. is_move_constructible checks if the type is constructible from an xvalue (rvalue). Consider:
struct foo { foo(foo const&) {} // no implicitly declared move ctor }; static_assert(is_move_constructible<foo>{}, "foo is not move-constructible");
See the definition of is_move_constructible (in the Standard), referring to is_constructible, which in turn is defined in terms of well-formedness of something like T temp( declval<T>() )
--91.14.112.161 08:31, 28 December 2013 (PST)
- Indeed, ths page is self-contradicting even (it refers to MoveConstructible which is satisfied by CopyConstructible). Thanks for bringing it over here and not just mulling over at StackOverflow :) --Cubbi (talk) 11:07, 28 December 2013 (PST)
The example at the end of the page indicates that NoMove isn't movable, but the output contradicts it. 216.23.206.154 05:37, 29 April 2015 (PDT) Chris Chiasson