diff --git a/headers/private/kernel/util/kernel_cpp.h b/headers/private/kernel/util/kernel_cpp.h index d904b16154..4709db51a4 100644 --- a/headers/private/kernel/util/kernel_cpp.h +++ b/headers/private/kernel/util/kernel_cpp.h @@ -39,13 +39,8 @@ extern void operator delete(void *ptr) _NOEXCEPT; extern void operator delete[](void *ptr) _NOEXCEPT; #if __cplusplus >= 201402L - -inline void -operator delete(void *ptr, size_t size) throw () -{ - free(ptr); -} - +extern void operator delete(void* ptr, std::size_t) _NOEXCEPT; +extern void operator delete[](void* ptr, std::size_t) _NOEXCEPT; #endif // __cplusplus >= 201402L #endif // #if _KERNEL_MODE diff --git a/src/system/kernel/util/kernel_cpp.cpp b/src/system/kernel/util/kernel_cpp.cpp index 10a5261ac0..4c064acb43 100644 --- a/src/system/kernel/util/kernel_cpp.cpp +++ b/src/system/kernel/util/kernel_cpp.cpp @@ -141,6 +141,25 @@ operator delete[](void *ptr) _NOEXCEPT free(ptr); } + +#if __cplusplus >= 201402L + +void +operator delete(void* ptr, std::size_t) _NOEXCEPT +{ + free(ptr); +} + + +void +operator delete[](void* ptr, std::size_t) _NOEXCEPT +{ + free(ptr); +} + +#endif + + #ifndef _BOOT_MODE FILE *stderr = NULL;