declaration of 'void* operator new [](size_t)' has a different exception specifier

1868 단어
Are you using C++11 or later?
The original operator new() declarations in C++98
throwing:   
void* operator new (std::size_t size) throw (std::bad_alloc);

nothrow:
void* operator new (std::size_t size, const std::nothrow_t& nothrow_value) throw();

placement:
void* operator new (std::size_t size, void* ptr) throw();

Have been changed in C++11 to use noexcept keyword:
throwing:   
void* operator new (std::size_t size);

nothrow:    
void* operator new (std::size_t size, const std::nothrow_t& nothrow_value) noexcept;

placement:  
void* operator new (std::size_t size, void* ptr) noexcept;

from 
Different exception specifier with g++ 6.2

좋은 웹페이지 즐겨찾기