UAVCAN_IMPLEMENT_PLACEMENT_NEW

This commit is contained in:
Pavel Kirienko
2014-05-05 19:28:28 +04:00
parent 8c8732d051
commit 581ee43231
5 changed files with 41 additions and 3 deletions
@@ -5,7 +5,6 @@
#pragma once
#include <cstdlib>
#include <new>
#include <uavcan/error.hpp>
#include <uavcan/impl_constants.hpp>
#include <uavcan/util/templates.hpp>
@@ -0,0 +1,30 @@
/*
* Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
*/
#pragma once
#include <cstddef>
#include <uavcan/impl_constants.hpp>
#ifndef UAVCAN_IMPLEMENT_PLACEMENT_NEW
# error UAVCAN_IMPLEMENT_PLACEMENT_NEW
#endif
#if UAVCAN_IMPLEMENT_PLACEMENT_NEW
inline void* operator new (std::size_t, void* ptr) throw()
{
return ptr;
}
inline void* operator new[](std::size_t, void* ptr) throw()
{
return ptr;
}
inline void operator delete (void*, void*) throw() { }
inline void operator delete[](void*, void*) throw() { }
#else
# include <new>
#endif