oops, placement new should take a void*
diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h index 80897c4..779b442 100644 --- a/Eigen/src/Core/Matrix.h +++ b/Eigen/src/Core/Matrix.h
@@ -141,7 +141,7 @@ return ei_aligned_malloc<ByteAlignedAsNeeded>(size); } - void *operator new(size_t, Matrix *ptr) throw() + void *operator new(size_t, void *ptr) throw() { return static_cast<void*>(ptr); } @@ -151,7 +151,7 @@ return ei_aligned_malloc<ByteAlignedAsNeeded>(size); } - void *operator new[](size_t, Matrix *ptr) throw() + void *operator new[](size_t, void *ptr) throw() { return static_cast<void*>(ptr); }