PandaRoot
PndCAArray.h File Reference
#include <assert.h>
#include <cstdlib>
#include <cstring>

Go to the source code of this file.

Classes

class  PndCAArrayInternal::STATIC_ASSERT_FAILURE< bool >
 
class  PndCAArrayInternal::STATIC_ASSERT_FAILURE< true >
 
class  PndCAArray< T, Dim >
 
struct  PndCAInternal::Padding< Size >
 
struct  PndCAInternal::Padding< 0 >
 
struct  PndCAInternal::CacheLineSizeHelperData< T >
 
struct  PndCAInternal::CacheLineSizeHelperEnums< T >
 
class  PndCAInternal::CacheLineSizeHelper< T >
 
struct  PndCAInternal::TypeForAlignmentHelper< T, alignment >
 
struct  PndCAInternal::TypeForAlignmentHelper< T, PndCAFullyCacheLineAligned >
 
class  PndCAInternal::ArrayBoundsCheck
 
class  PndCAInternal::Allocator< T, alignment >
 
class  PndCAInternal::Allocator< T, PndCAFullyCacheLineAligned >
 
class  PndCAInternal::Allocator< T, 0 >
 
struct  PndCAInternal::ReturnTypeHelper< T >
 
struct  PndCAInternal::ReturnTypeHelper< CacheLineSizeHelper< T > >
 
class  PndCAInternal::ArrayBase< T, Dim >
 
class  PndCAInternal::ArrayBase< T, 1 >
 
class  PndCAInternal::ArrayBase< T, 2 >
 
class  PndCAInternal::ArrayBase< T, 3 >
 
class  PndCAInternal::AlignedData< T, Size, _alignment >
 
class  PndCAInternal::AlignedData< T, Size, 0 >
 
class  PndCAArray< T, Dim >
 
class  PndCAResizableArray< T, Dim, alignment >
 
class  PndCAArraySize< x, y, z >
 
class  PndCAFixedArray< T, Size, alignment >
 

Namespaces

 PndCAArrayInternal
 
 PndCAInternal
 

Macros

#define ALIHLTARRAY_STATIC_ASSERT_CONCAT_HELPER(a, b)   a##b
 
#define ALIHLTARRAY_STATIC_ASSERT_CONCAT(a, b)   ALIHLTARRAY_STATIC_ASSERT_CONCAT_HELPER(a, b)
 
#define ALIHLTARRAY_STATIC_ASSERT_NC(cond, msg)
 
#define ALIHLTARRAY_STATIC_ASSERT(cond, msg)
 
#define BOUNDS_CHECK(x, y)
 

Enumerations

enum  { PndCAFullyCacheLineAligned = -1 }
 

Detailed Description

Author
Matthias Kretz kretz.nosp@m.@kde.nosp@m..org

This file contains the classes PndCAResizableArray and PndCAFixedArray with PndCAArray as base class. It's a drop-in replacement for C-Arrays. It makes it easy to use variable sized arrays on the stack and pass arrays as arguments to other functions with an optional bounds-checking enabled for the whole time.

Definition in file PndCAArray.h.

Macro Definition Documentation

◆ ALIHLTARRAY_STATIC_ASSERT

#define ALIHLTARRAY_STATIC_ASSERT (   cond,
  msg 
)
Value:
(void)Error_##msg
#define ALIHLTARRAY_STATIC_ASSERT_NC(cond, msg)
Definition: PndCAArray.h:68

Definition at line 71 of file PndCAArray.h.

Referenced by PndCAResizableArray< T, Dim, alignment >::PndCAResizableArray(), and PndCAResizableArray< T, Dim, alignment >::Resize().

◆ ALIHLTARRAY_STATIC_ASSERT_CONCAT

#define ALIHLTARRAY_STATIC_ASSERT_CONCAT (   a,
 
)    ALIHLTARRAY_STATIC_ASSERT_CONCAT_HELPER(a, b)

Definition at line 67 of file PndCAArray.h.

◆ ALIHLTARRAY_STATIC_ASSERT_CONCAT_HELPER

#define ALIHLTARRAY_STATIC_ASSERT_CONCAT_HELPER (   a,
 
)    a##b

Definition at line 66 of file PndCAArray.h.

◆ ALIHLTARRAY_STATIC_ASSERT_NC

#define ALIHLTARRAY_STATIC_ASSERT_NC (   cond,
  msg 
)
Value:
typedef PndCAArrayInternal::STATIC_ASSERT_FAILURE<cond> ALIHLTARRAY_STATIC_ASSERT_CONCAT(_STATIC_ASSERTION_FAILED_##msg, __LINE__); \
ALIHLTARRAY_STATIC_ASSERT_CONCAT(_STATIC_ASSERTION_FAILED_##msg, __LINE__) Error_##msg
#define ALIHLTARRAY_STATIC_ASSERT_CONCAT(a, b)
Definition: PndCAArray.h:67

Definition at line 68 of file PndCAArray.h.

Referenced by PndCAInternal::AlignedData< typename PndCAInternal::TypeForAlignmentHelper< T, alignment >::Type, Size::Size, alignment >::~AlignedData().

◆ BOUNDS_CHECK

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PndCAFullyCacheLineAligned 

Definition at line 56 of file PndCAArray.h.