| Index: core/include/fxcrt/fx_basic.h
|
| diff --git a/core/include/fxcrt/fx_basic.h b/core/include/fxcrt/fx_basic.h
|
| index 0c84f540e9d17985b8da126b569171322fa83f9d..2a77e6e9473ca7b2d0ec40ee6222881c938698da 100644
|
| --- a/core/include/fxcrt/fx_basic.h
|
| +++ b/core/include/fxcrt/fx_basic.h
|
| @@ -18,6 +18,22 @@
|
| #ifndef _FX_STREAM_H_
|
| #include "fx_stream.h"
|
| #endif
|
| +
|
| +// The FX_ArraySize(arr) macro returns the # of elements in an array arr.
|
| +// The expression is a compile-time constant, and therefore can be
|
| +// used in defining new arrays, for example. If you use FX_ArraySize on
|
| +// a pointer by mistake, you will get a compile-time error.
|
| +//
|
| +// One caveat is that FX_ArraySize() doesn't accept any array of an
|
| +// anonymous type or a type defined inside a function.
|
| +#define FX_ArraySize(array) (sizeof(ArraySizeHelper(array)))
|
| +
|
| +// This template function declaration is used in defining FX_ArraySize.
|
| +// Note that the function doesn't need an implementation, as we only
|
| +// use its type.
|
| +template <typename T, size_t N>
|
| +char (&ArraySizeHelper(T (&array)[N]))[N];
|
| +
|
| class CFX_BinaryBuf : public CFX_Object
|
| {
|
| public:
|
|
|