Skip to content

Commit 83e498b

Browse files
committed
Update memprof to C++17.
1 parent bff0e2d commit 83e498b

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

‎memprof/memprof.cpp

+8-5
Original file line numberDiff line numberDiff line change
@@ -291,22 +291,25 @@ void *memalign(std::size_t alignment, std::size_t size) {
291291
}
292292
}
293293

294-
// c++14 guarantees that it is enough to override these two operators.
294+
// c++17 guarantees that it is enough to override these 4 operators
295295
void *operator new(std::size_t count) {
296296
return malloc_with_frame(count, get_backtrace());
297297
}
298298
void operator delete(void *ptr) noexcept(true) {
299299
free(ptr);
300300
}
301+
void *operator new(std::size_t count, std::align_val_t al) {
302+
return memalign(static_cast<std::size_t>(al), count);
303+
}
304+
void operator delete(void *ptr, std::align_val_t al) noexcept {
305+
free(ptr);
306+
}
307+
301308
// because of gcc warning: the program should also define 'void operator delete(void*, std::size_t)'
302309
void operator delete(void *ptr, std::size_t) noexcept(true) {
303310
free(ptr);
304311
}
305312

306-
// c++17
307-
// void *operator new(std::size_t count, std::align_val_t al);
308-
// void operator delete(void *ptr, std::align_val_t al);
309-
310313
#else
311314
bool is_memprof_on() {
312315
return false;

0 commit comments

Comments
 (0)