svn merge ^/trunk/blender -r47423:47506
[blender.git] / intern / memutil / MEM_Allocator.h
index d5ae94cc6b868727e062f38c392080ca5b3e6453..0020094ebbb9bc3958689580651c6a11ed787afc 100644 (file)
@@ -1,5 +1,4 @@
-/**
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * Contributor(s): Peter Schlaile <peter@schlaile.de> 2005
  *
  * ***** END GPL LICENSE BLOCK *****
  */
 
-#ifndef __MEM_Allocator_h_included__
-#define __MEM_Allocator_h_included__ 1
+/** \file memutil/MEM_Allocator.h
+ *  \ingroup memutil
+ */
 
-#include "guardedalloc/MEM_guardedalloc.h"
 
-#ifdef _MSC_VER
-#if _MSC_VER < 1300 // 1200 == VC++ 6.0 according to boost
-#define MS_VISUALC_6_0_WORKAROUND 1
-#endif
-#endif
+#ifndef __MEM_ALLOCATOR_H__
+#define __MEM_ALLOCATOR_H__
+
+#include <stddef.h>
+#include "guardedalloc/MEM_guardedalloc.h"
+#include "guardedalloc/MEM_sys_types.h"
 
 template<typename _Tp>
 struct MEM_Allocator
@@ -43,20 +43,16 @@ struct MEM_Allocator
        typedef const _Tp& const_reference;
        typedef _Tp        value_type;
 
-#ifndef MS_VISUALC_6_0_WORKAROUND
        template<typename _Tp1>
         struct rebind { 
                typedef MEM_Allocator<_Tp1> other; 
        };
-#endif
 
        MEM_Allocator() throw() {}
        MEM_Allocator(const MEM_Allocator&) throw() {}
 
-#ifndef MS_VISUALC_6_0_WORKAROUND
        template<typename _Tp1>
         MEM_Allocator(const MEM_Allocator<_Tp1>) throw() { }
-#endif
 
        ~MEM_Allocator() throw() {}
 
@@ -64,11 +60,6 @@ struct MEM_Allocator
 
        const_pointer address(const_reference __x) const { return &__x; }
 
-#ifdef MS_VISUALC_6_0_WORKAROUND
-       char *_Charalloc(size_type n) {
-               return (char *) MEM_mallocN(n, "STL MEM_Allocator VC6.0");
-       }
-#endif
        // NB: __n is permitted to be 0.  The C++ standard says nothing
        // about what the return value is when __n == 0.
        _Tp* allocate(size_type __n, const void* = 0) {
@@ -80,17 +71,10 @@ struct MEM_Allocator
                return __ret;
        }
 
-#ifndef MS_VISUALC_6_0_WORKAROUND
-       // __p is not permitted to be a null pointer.
-       void deallocate(pointer __p, size_type){ 
-               MEM_freeN(__p);
-       }
-#else
        // __p is not permitted to be a null pointer.
-       void deallocate(void* __p, size_type){ 
+       void deallocate(pointer __p, size_type) {
                MEM_freeN(__p);
        }
-#endif
 
        size_type max_size() const throw() { 
                return size_t(-1) / sizeof(_Tp); 
@@ -105,4 +89,4 @@ struct MEM_Allocator
        }
 };
 
-#endif
+#endif // __MEM_ALLOCATOR_H__