소멸자 및 noexcept
과 약간 혼동합니다. 내 이해는 C++ 11에서는 사용자 정의를 포함하여 소멸자가 암시 적으로 noexcept(true)
인데, 심지어 throw
인 경우에도 마찬가지입니다. 그리고 그들이 어떤 이유로 그것을 원한다면 명시 적으로 noexcept(false)
을 지정해야합니다.소멸자 및 noexcept
나는 GCC 4.7.2에서 클래스와 소멸자가 얼마나 원시적이든지간에 사용자 정의 소멸자가 암시 적으로 noexcept(false)
임을 알았습니다. 내가 여기서 무엇을 놓치고 있니? 사용자 정의 소멸자가있는 숨겨진 잡화가 있습니까?
12.4/3 : "예외 스펙이없는 소멸자의 선언은 암시 적으로 간주됩니다 에 암시 적 선언 (15.4)과 동일한 예외 사양이 있어야합니다. " 즉 소멸자는 모든 멤버와베이스에 noexcept 소멸자가있는 경우에만 'noexcept (true)'입니다. – ipc