FastArduino v1.10
C++ library to build fast but small Arduino/AVR projects
Loading...
Searching...
No Matches
dynamic_allocation.cpp
1// Copyright 2016-2023 Jean-Francois Poilpret
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#include "defines.h"
16#include "stddef.h"
17
18// Allows to disengage dynamic allocation prevention (requires library rebuild)
19// This also requires developers to implement their own new/delete as needed!
20#ifndef USE_DYNAMIC_ALLOCATION
21
22// This code is just to prevent any kind of dynamic allocation in FastArduino programs
23void* operator new(size_t) = delete;
24void* operator new[](size_t) = delete;
25void* operator new(size_t, void*) = delete;
26void* operator new[](size_t, void*) = delete;
27
28void operator delete(void*) = delete;
29void operator delete[](void*) = delete;
30void operator delete(void*, size_t) = delete;
31void operator delete[](void*, size_t) = delete;
32void operator delete(void*, void*) = delete;
33void operator delete[](void*, void*) = delete;
34
35#endif
Useful defines GCC specific attributes.