#include <type_traits>
struct test {
virtual void foo( ) noexcept = 0 ;
} ;
struct test2 : test {
void foo( ) noexcept override final { }
} ;
// fails
static_assert( std:: is_move_constructible < test> :: value , "test not move constructible" ) ;
// succeeds
static_assert( std:: is_move_constructible < test2> :: value , "test2 not move constructible" ) ;
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKc3RydWN0IHRlc3QgewoJdmlydHVhbCB2b2lkIGZvbygpIG5vZXhjZXB0ID0gMDsKfTsKCnN0cnVjdCB0ZXN0MiA6IHRlc3QgewoJdm9pZCBmb28oKSBub2V4Y2VwdCBvdmVycmlkZSBmaW5hbCB7fQkKfTsKCi8vIGZhaWxzCnN0YXRpY19hc3NlcnQoc3RkOjppc19tb3ZlX2NvbnN0cnVjdGlibGU8dGVzdD46OnZhbHVlLCAidGVzdCBub3QgbW92ZSBjb25zdHJ1Y3RpYmxlIik7Ci8vIHN1Y2NlZWRzCnN0YXRpY19hc3NlcnQoc3RkOjppc19tb3ZlX2NvbnN0cnVjdGlibGU8dGVzdDI+Ojp2YWx1ZSwgInRlc3QyIG5vdCBtb3ZlIGNvbnN0cnVjdGlibGUiKTsK