/usr/include/oce/Standard_DefineAlloc.hxx is in liboce-foundation-dev 0.17.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | // Created on: 2012-01-19
// Created by: Dmitry BOBYLEV
// Copyright (c) 2012-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _Standard_DefineAlloc_HeaderFile
#define _Standard_DefineAlloc_HeaderFile
// Macro to override new and delete operators for arrays.
// Defined to empty for old SUN compiler
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
# define DEFINE_STANDARD_ALLOC_ARRAY
# else
# define DEFINE_STANDARD_ALLOC_ARRAY \
void* operator new[] (size_t theSize) \
{ \
return Standard::Allocate (theSize); \
} \
void operator delete[] (void* theAddress) \
{ \
Standard::Free (theAddress); \
}
# endif
// Macro to override placement new and placement delete operators.
// For Borland C and old SUN compilers do not define placement delete
// as it is not supported.
# if defined(__BORLANDC__) || (defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530))
# define DEFINE_STANDARD_ALLOC_PLACEMENT \
void* operator new (size_t, void* theAddress) \
{ \
return theAddress; \
}
# else
# define DEFINE_STANDARD_ALLOC_PLACEMENT \
void* operator new (size_t, void* theAddress) \
{ \
return theAddress; \
} \
void operator delete (void*, void*) \
{ \
}
# endif
// Macro to override operators new and delete to use OCC memory manager
# define DEFINE_STANDARD_ALLOC \
void* operator new (size_t theSize) \
{ \
return Standard::Allocate (theSize); \
} \
void operator delete (void* theAddress) \
{ \
Standard::Free (theAddress); \
} \
DEFINE_STANDARD_ALLOC_ARRAY \
DEFINE_STANDARD_ALLOC_PLACEMENT
// Declare operator new in global scope for old sun compiler
#ifndef WORKAROUND_SUNPRO_NEW_PLACEMENT
#define WORKAROUND_SUNPRO_NEW_PLACEMENT
#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x420)
inline void* operator new(size_t,void* anAddress)
{
return anAddress;
}
#endif
#endif
//! @def STANDARD_ALIGNED(theAlignment, theType, theVar)
//! Declare variable with memory alignment.
//! @code
//! static const STANDARD_ALIGNED(8, char, THE_ARRAY)[] = {0xFF, 0xFE, 0xFA, 0xFB, 0xFF, 0x11, 0x22, 0x33};
//! @endcode
#if defined(_MSC_VER)
#define STANDARD_ALIGNED(theAlignment, theType, theVar) __declspec(align(theAlignment)) theType theVar
#elif defined(__GNUC__)
#define STANDARD_ALIGNED(theAlignment, theType, theVar) theType __attribute__ ((aligned (theAlignment))) theVar
#else
#define STANDARD_ALIGNED(theAlignment, theType, theVar) theType theVar
#endif
#endif // _Standard_DefineAlloc_HeaderFile
|