Panther Search Documentation Tutorials Devlogs Downloads Source Code

Documentation > Panther Documentation > Primitive Types

Primitive Types

Panther
Documentation


Primitive Integral Types

Specified Width Integral Types

  An integer type can be specified to be signed or unsigned and can be any bitwidth from 1 all the way up to 8388608 (223). The type is written with an I for signed and UI for unsigned, followed by the bitwidth.

Type Description
I32 32-bit signed integer
UI64 64-bit unsigned integer
I1 1-bit signed integer
UI46824 46,824-bit unsigned integer

Target-Dependent Integral Types

Type Description
Int Signed integer that has the same width of a general register on the target (64 on x86_64)
UInt Unsigned integer that has the same width of a general register on the target (64 on x86_64)
ISize Signed integer that has the same width of a pointer on the target (64 on x86_64)
USize Unsigned integer that has the same width of a pointer on the target (64 on x86_64)

Integral Types for C/C++ Compatibility

Type C/C++ equivalent
CShort short
CUShort unsigned short
CInt int
CUInt unsigned int
CLong long
CULong unsigned long
CLongLong long long
CULongLong unsigned long long

Primitive Floating Point Types

Type Description
F16 16-bit floating point (IEEE-754 binary16)
BF16 16-bit floating point (bfloat16)
F32 32-bit floating point (IEEE-754 binary32)
F64 64-bit floating point (IEEE-754 binary64)
F80 80-bit floating point (x87)
F128 128-bit floating point (IEEE-754 binary128)
CLongDouble C/C++ compatibility type for long double

Miscellaneous Primitive Types

Type Description
Void Nothing (for example, to signify that a function returns nothing)
Byte A single byte
Bool Boolean type (true or false)
Char ASCII Character
RawPtr Opaque pointer type (like void* in C/C++)
TypeID Type that represents the unique ID of a type (value not guaranteed to be consistent between compiles)