#ifndef TINYSTL_VECTOR_NEW
#define TINYSTL_VECTOR_NEW

#include<stddef.h>
#include<stdlib.h>

namespace std {
  // TODO: nothrow
  
  typedef size_t size_t;
}

void* operator new (std::size_t s);
void* operator new[] (std::size_t s);

void operator delete (void* p);
void operator delete[] (void* p);

/*
void* operator new (std::size_t, const std::nothrow_t&);
void* operator new[] (std::size_t, const std::nothrow_t&);
void operator delete (void*, const std::nothrow_t&);
void operator delete[] (void*, const std::nothrow_t&);
*/

// Default placement versions of operator new.
inline void* operator new (std::size_t, void* p) {
  return p;
}

inline void* operator new[] (std::size_t, void* p) {
  return p;
}

// Default placement versions of operator delete.
inline void operator delete (void*, void*) throw() { }
inline void operator delete[] (void*, void*) throw() { }

#endif
