는 다음과 같은 코드를 가지고 : 그 소리의 SVN에서가상 클래스의 건설 nothrow C++ 11
#include <type_traits>
struct X { virtual ~X(); };
static_assert(std::is_nothrow_default_constructible<X>::value, "fail");
, 그것은 잘 컴파일합니다. 그러나 gcc 4.7.2에서는 어설 션이 실패합니다. 어느 것이 옳은가요? (그리고 gcc가 맞다면, 왜?)
좋습니다. 소멸자 선언 후에'noexcept'를 작성하면 당분간 문제가 해결됩니다. –
@Howard : std :: is_nothrow_default_constructible이 소멸자를 고려해야하는지 아닌지에 대해서는 실종 상태 일 수 있습니다. http://cplusplus.github.com/LWG/lwg-active.html#2116. LWG가 나보다 훨씬 잘 작동하는 방법을 확실히 이해하고 있습니다. 제 해석이 잘못되면 저를 바로 잡으십시오. (미리 감사드립니다.) 어쨌든,이 버그는 GCC에보고되었습니다 : http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51452 (그러나 나에게) 그것은 보류 상태로되어 있습니다. std :: is_nothrow_default_constructible의 정의. –