Pages: [1]   Go Down
Author Topic: New; delete; pure virtual functions...  (Read 516 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 1
Posts: 225
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

.... were added in Arduino 1.0.  From new.h:

Code:
#include <stdlib.h>

void * operator new(size_t size);
void operator delete(void * ptr);

__extension__ typedef int __guard __attribute__((mode (__DI__)));

extern "C" int __cxa_guard_acquire(__guard *);
extern "C" void __cxa_guard_release (__guard *);
extern "C" void __cxa_guard_abort (__guard *);

extern "C" void __cxa_pure_virtual(void);

I'm curious...
- Is this documented anywhere?
- Why do the functions have to be declared as extern "C"?  Something to do with function name hashing?
Logged

South Texas
Offline Offline
Edison Member
*
Karma: 8
Posts: 1025
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Seeing as how you have only 2K of RAM for Variables and Stack I don't think it would really be all that useful in the Arduino environment anyway...
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 225
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

To the contrary... I have a model railroad control system where new trains can appear on the layout at any time, and two different kinds of trains that require entirely different functions for the Arduino to control their speeds.  Creating a new object dynamically that implements a virtual speed control function is perfect for this application.

Besides, it's a Mega with 8k of RAM... plenty for creating a small number of small objects.
Logged

Pages: [1]   Go Up
Jump to: