GDAL
|
Core portability definitions for CPL. More...
#include "cpl_config.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
#include <time.h>
#include <errno.h>
#include <locale.h>
#include <strings.h>
Go to the source code of this file.
Macros | |
#define | GINTBIG_MIN (CPL_STATIC_CAST(GIntBig, 0x80000000) << 32) |
Minimum GIntBig value. | |
#define | GINTBIG_MAX ((CPL_STATIC_CAST(GIntBig, 0x7FFFFFFF) << 32) | 0xFFFFFFFFU) |
Maximum GIntBig value. | |
#define | GUINTBIG_MAX ((CPL_STATIC_CAST(GUIntBig, 0xFFFFFFFFU) << 32) | 0xFFFFFFFFU) |
Maximum GUIntBig value. | |
#define | GINT64_MIN GINTBIG_MIN |
Minimum GInt64 value. | |
#define | GINT64_MAX GINTBIG_MAX |
Maximum GInt64 value. | |
#define | GUINT64_MAX GUINTBIG_MAX |
Minimum GUInt64 value. | |
#define | CPL_FRMT_GB_WITHOUT_PREFIX "ll" |
Printf formatting suffix for GIntBig. | |
#define | CPL_FRMT_GIB "%" CPL_FRMT_GB_WITHOUT_PREFIX "d" |
Printf formatting for GIntBig. | |
#define | CPL_FRMT_GUIB "%" CPL_FRMT_GB_WITHOUT_PREFIX "u" |
Printf formatting for GUIntBig. | |
#define | CPL_C_START extern "C" { |
Macro to start a block of C symbols. | |
#define | CPL_C_END } |
Macro to end a block of C symbols. | |
#define | MIN(a, b) (((a)<(b)) ? (a) : (b)) |
Macro to compute the minimum of 2 values. | |
#define | MAX(a, b) (((a)>(b)) ? (a) : (b)) |
Macro to compute the maximum of 2 values. | |
#define | ABS(x) (((x)<0) ? (-1*(x)) : (x)) |
Macro to compute the absolute value. | |
#define | M_PI 3.14159265358979323846 |
PI definition. | |
#define | STRCASECMP(a, b) (strcasecmp(a,b)) |
Alias for strcasecmp() | |
#define | STRNCASECMP(a, b, n) (strncasecmp(a,b,n)) |
Alias for strncasecmp() | |
#define | EQUALN(a, b, n) (STRNCASECMP(a,b,n)==0) |
Alias for strncasecmp() == 0. | |
#define | EQUAL(a, b) (STRCASECMP(a,b)==0) |
Alias for strcasecmp() == 0. | |
#define | STARTS_WITH(a, b) (strncmp(a,b,strlen(b)) == 0) |
Returns whether a starts with b. | |
#define | STARTS_WITH_CI(a, b) EQUALN(a,b,strlen(b)) |
Returns whether a starts with b (case insensitive comparison) | |
#define | CPL_SWAP16(x) CPL_STATIC_CAST(GUInt16, (CPL_STATIC_CAST(GUInt16, x) << 8) | (CPL_STATIC_CAST(GUInt16, x) >> 8) ) |
Byte-swap a 16bit unsigned integer. | |
#define | CPL_SWAP32(x) |
Byte-swap a 32bit unsigned integer. More... | |
#define | CPL_SWAP64(x) |
Byte-swap a 64bit unsigned integer. More... | |
#define | CPL_SWAP16PTR(x) |
Byte-swap a 16 bit pointer. More... | |
#define | CPL_SWAP32PTR(x) |
Byte-swap a 32 bit pointer. More... | |
#define | CPL_SWAP64PTR(x) |
Byte-swap a 64 bit pointer. More... | |
#define | CPL_SWAPDOUBLE(p) CPL_SWAP64PTR(p) |
Byte-swap a 64 bit pointer. | |
#define | CPL_LSBWORD16(x) (x) |
Return a 16bit word from a originally LSB ordered word. | |
#define | CPL_MSBWORD16(x) CPL_SWAP16(x) |
Return a 16bit word from a originally MSB ordered word. | |
#define | CPL_LSBWORD32(x) (x) |
Return a 32bit word from a originally LSB ordered word. | |
#define | CPL_MSBWORD32(x) CPL_SWAP32(x) |
Return a 32bit word from a originally MSB ordered word. | |
#define | CPL_LSBPTR16(x) CPL_STATIC_ASSERT_IF_AVAILABLE(sizeof(*(x)) == 1 || sizeof(*(x)) == 2) |
Byte-swap if necessary a 16bit word at the location pointed from a originally LSB ordered pointer. | |
#define | CPL_MSBPTR16(x) CPL_SWAP16PTR(x) |
Byte-swap if necessary a 16bit word at the location pointed from a originally MSB ordered pointer. | |
#define | CPL_LSBPTR32(x) CPL_STATIC_ASSERT_IF_AVAILABLE(sizeof(*(x)) == 1 || sizeof(*(x)) == 4) |
Byte-swap if necessary a 32bit word at the location pointed from a originally LSB ordered pointer. | |
#define | CPL_MSBPTR32(x) CPL_SWAP32PTR(x) |
Byte-swap if necessary a 32bit word at the location pointed from a originally MSB ordered pointer. | |
#define | CPL_LSBPTR64(x) CPL_STATIC_ASSERT_IF_AVAILABLE(sizeof(*(x)) == 1 || sizeof(*(x)) == 8) |
Byte-swap if necessary a 64bit word at the location pointed from a originally LSB ordered pointer. | |
#define | CPL_MSBPTR64(x) CPL_SWAP64PTR(x) |
Byte-swap if necessary a 64bit word at the location pointed from a originally MSB ordered pointer. | |
#define | CPL_LSBINT16PTR(x) ((*CPL_REINTERPRET_CAST(const GByte*, x)) | (*((CPL_REINTERPRET_CAST(const GByte*, x))+1) << 8)) |
Return a Int16 from the 2 bytes ordered in LSB order at address x. More... | |
#define | CPL_LSBINT32PTR(x) |
Return a Int32 from the 4 bytes ordered in LSB order at address x. More... | |
#define | CPL_LSBSINT16PTR(x) CPL_STATIC_CAST(GInt16,CPL_LSBINT16PTR(x)) |
Return a signed Int16 from the 2 bytes ordered in LSB order at address x. | |
#define | CPL_LSBUINT16PTR(x) CPL_STATIC_CAST(GUInt16, CPL_LSBINT16PTR(x)) |
Return a unsigned Int16 from the 2 bytes ordered in LSB order at address x. | |
#define | CPL_LSBSINT32PTR(x) CPL_STATIC_CAST(GInt32, CPL_LSBINT32PTR(x)) |
Return a signed Int32 from the 4 bytes ordered in LSB order at address x. | |
#define | CPL_LSBUINT32PTR(x) CPL_STATIC_CAST(GUInt32, CPL_LSBINT32PTR(x)) |
Return a unsigned Int32 from the 4 bytes ordered in LSB order at address x. | |
#define | CPL_NULL_TERMINATED |
Null terminated variadic. | |
#define | CPL_PRINT_FUNC_FORMAT(format_idx, arg_idx) |
Tag a function to have printf() formatting. | |
#define | CPL_SCAN_FUNC_FORMAT(format_idx, arg_idx) |
Tag a function to have scanf() formatting. | |
#define | CPL_FORMAT_STRING(arg) arg |
Macro into which to wrap the format argument of a printf-like function. | |
#define | CPL_SCANF_FORMAT_STRING(arg) arg |
Macro into which to wrap the format argument of a sscanf-like function. More... | |
#define | CPL_WARN_UNUSED_RESULT |
Qualifier to warn when the return value of a function is not used. | |
#define | CPL_UNUSED |
Qualifier for an argument that is unused. | |
#define | CPL_NO_RETURN |
Qualifier for a function that does not return at all (terminates the process) | |
#define | CPL_RETURNS_NONNULL |
Qualifier for a function that does not return NULL. | |
#define | CPL_RESTRICT |
restrict keyword to declare that pointers do not alias | |
#define | CPL_OVERRIDE override |
To be used in public headers only. More... | |
#define | CPL_FINAL final |
C++11 final qualifier. | |
#define | CPL_DISALLOW_COPY_ASSIGN(ClassName) |
Helper to remove the copy and assignment constructors so that the compiler will not generate the default versions. More... | |
#define | CPL_ARRAYSIZE(array) |
Returns the size of C style arrays. More... | |
#define | CPL_FALLTHROUGH |
Macro for fallthrough in a switch case construct. | |
Typedefs | |
typedef int | GInt32 |
Int32 type. | |
typedef unsigned int | GUInt32 |
Unsigned int32 type. | |
typedef short | GInt16 |
Int16 type. | |
typedef unsigned short | GUInt16 |
Unsigned int16 type. | |
typedef unsigned char | GByte |
Unsigned byte type. | |
typedef int | GBool |
Type for boolean values (alias to int) | |
typedef long long | GIntBig |
Large signed integer type (generally 64-bit integer type). More... | |
typedef unsigned long long | GUIntBig |
Large unsigned integer type (generally 64-bit unsigned integer type). More... | |
typedef GIntBig | GInt64 |
Signed 64 bit integer type. | |
typedef GUIntBig | GUInt64 |
Unsigned 64 bit integer type. | |
typedef GIntBig | GPtrDiff_t |
Integer type large enough to hold the difference between 2 addresses. | |
typedef char ** | CSLConstList |
Type of a constant null-terminated list of nul terminated strings. More... | |
Core portability definitions for CPL.
#define CPL_ARRAYSIZE | ( | array | ) |
Returns the size of C style arrays.
#define CPL_DISALLOW_COPY_ASSIGN | ( | ClassName | ) |
Helper to remove the copy and assignment constructors so that the compiler will not generate the default versions.
Must be placed in the private section of a class and should be at the end.
#define CPL_LSBINT16PTR | ( | x | ) | ((*CPL_REINTERPRET_CAST(const GByte*, x)) | (*((CPL_REINTERPRET_CAST(const GByte*, x))+1) << 8)) |
Return a Int16 from the 2 bytes ordered in LSB order at address x.
#define CPL_LSBINT32PTR | ( | x | ) |
Return a Int32 from the 4 bytes ordered in LSB order at address x.
#define CPL_OVERRIDE override |
To be used in public headers only.
For non-public headers or .cpp files, use override directly.
#define CPL_SCANF_FORMAT_STRING | ( | arg | ) | arg |
Macro into which to wrap the format argument of a sscanf-like function.
#define CPL_SWAP16PTR | ( | x | ) |
Byte-swap a 16 bit pointer.
#define CPL_SWAP32 | ( | x | ) |
#define CPL_SWAP32PTR | ( | x | ) |
Byte-swap a 32 bit pointer.
#define CPL_SWAP64 | ( | x | ) |
Byte-swap a 64bit unsigned integer.
#define CPL_SWAP64PTR | ( | x | ) |
Byte-swap a 64 bit pointer.
typedef char** CSLConstList |
Type of a constant null-terminated list of nul terminated strings.
Seen as char** from C and const char* const* from C++
typedef long long GIntBig |
Large signed integer type (generally 64-bit integer type).
Use GInt64 when exactly 64 bit is needed
typedef unsigned long long GUIntBig |
Large unsigned integer type (generally 64-bit unsigned integer type).
Use GUInt64 when exactly 64 bit is needed