diff --git a/src/lib/libcpp/include/libcpp.h b/src/lib/libcpp/include/libcpp.h index b7438b1..78f02c8 100644 --- a/src/lib/libcpp/include/libcpp.h +++ b/src/lib/libcpp/include/libcpp.h @@ -6,6 +6,4 @@ void * operator new[](unsigned size); void operator delete[](void * ptr); -void * operator new(unsigned int size, void * ptr); - #endif diff --git a/src/lib/libcpp/libcpp.cc b/src/lib/libcpp/libcpp.cc index f7f2898..836cde0 100644 --- a/src/lib/libcpp/libcpp.cc +++ b/src/lib/libcpp/libcpp.cc @@ -33,8 +33,5 @@ return; } -void * operator new(unsigned int size, void * ptr) { - return((void *)ptr); - } /* End Don't Touch */ diff --git a/src/lib/libstdc++/sinst.cc b/src/lib/libstdc++/sinst.cc index a23ac1b..2b01352 100644 --- a/src/lib/libstdc++/sinst.cc +++ b/src/lib/libstdc++/sinst.cc @@ -16,6 +16,9 @@ void __eprintf(void *a,void *b,void *c,void *d) { return; } + void cerr() { + return; + } } @@ -64,3 +67,6 @@ return(*this); } +void * operator new (size_t s, size_t extra) { + return Allocator::allocate(s + extra * sizeof (charT)); + } diff --git a/src/lib/libstdc++/std/straights.h b/src/lib/libstdc++/std/straights.h index 78bf1a2..23cc1ba 100644 --- a/src/lib/libstdc++/std/straights.h +++ b/src/lib/libstdc++/std/straights.h @@ -1,7 +1,13 @@ #include +extern "C" { + #include + }; + + typedef char charT; + extern "C++" { template struct string_char_traits { @@ -74,4 +80,20 @@ }; -} + } + +class Allocator { + public: + static void * allocate(size_t __n) { + void* __result = malloc(__n); + return __result; + } + }; + + +class basic_string { + private: + inline static void * operator new (size_t, size_t); + public: + void test(); + };