Thread View: gnu.g++.help
1 messages
1 total messages
Started by Eric Valette
Wed, 24 Oct 1990 14:35
problem with operator new and g++1.37.1
Author: Eric Valette
Date: Wed, 24 Oct 1990 14:35
Date: Wed, 24 Oct 1990 14:35
84 lines
2086 bytes
2086 bytes
/*
*
* The following program compiles when using Cfront 2.0.
*
* The syntax used in function f() to call the foo::new operator seems
* to be incorrect for g++1.37.1. (this syntax is described in
* " the annotated C++ reference manual" by A. Ellis & B Stroustrup
* p 60.
*
* What is the correct syntax for g++1.37.1?
*
* NB : I can not use a global __user_new operator (I have exactly the
* same problem in many classes).
*
* I need an answer in order to compile the chorus kernel with g++ !!
*
* Thanks,
*
*/
extern "C" {
char * malloc(int size);
void free(void*);
}
// typedef unsigned long size_t; // for g++
typedef unsigned int size_t;
class foo {
char * ptrData;
int x;
public:
foo (int j);
int get () {return x;}
void* operator new (size_t , int stringSize);
void* operator new (size_t) {return 0;} // just to make Cfront 2.0 happy
// (needed for global object)
void operator delete (void*);
};
void*
foo::operator new (size_t fooSize, int stringSize) {
return malloc(fooSize + stringSize);
}
void
foo::operator delete (void* ptr) {
free(ptr);
}
foo::foo (int j) {
x =j;
ptrData = ((char *) this + sizeof(foo));
}
int f()
{
// with g++ I get a parse error on the following line :
foo *ptr = new (100) foo(2);
return ptr->get();
}
/*
*
*
__
/ ` Eric Valette
/-- __ o _. Chorus Systemes
(___, / (_(_(__ 6 avenue Gustave Eiffel
F-78182, St-Quentin-en-Yvelines-Cedex
Tel: +33 (1) 30 64 82 00 Fax: +33 (1) 30 57 00 66
E-mail: ev@chorus.fr or ev%chorus.fr@mcsun.EU.net
*
*
*/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads