SH4ZAM! 0.1.0
Fast math library for the Sega Dreamcast's SH4 CPU
Loading...
Searching...
No Matches
shz_cdefs.hpp
Go to the documentation of this file.
1/*! \file
2 * \brief C++ wrappers for preprocessor definitions and macro utilities.
3 *
4 * This file contains the C++ API around the C preprocessor and macro API.
5 *
6 * \author 2025, 2026 Falco Girgis
7 * \copyright MIT License
8 */
9
10#ifndef SHZ_CDEFS_HPP
11#define SHZ_CDEFS_HPP
12
13#include "shz_cdefs.h"
14
15#if __cplusplus > 202002L
16 //! Defined if building with C++23 to enable optional features.
17# define SHZ_CPP23 1
18#endif
19
20//! Namespace enclosing the SH4ZAM C++ API.
21namespace shz {
22
23 /*! \name Aliasing Types
24 * \brief Types which may break C/C++'s strict aliasing rules
25 * @{
26 */
27
28 //! int16_t type whose value may be aliased as another type.
29 using alias_int16_t = shz_alias_int16_t;
30 //! uint16_t type whose value may be aliased as another type.
31 using alias_uint16_t = shz_alias_uint16_t;
32 //! int32_t type whose value may be aliased as another type.
33 using alias_int32_t = shz_alias_int32_t;
34 //! uint32_t type whose value may be aliased as another type.
35 using alias_uint32_t = shz_alias_uint32_t;
36 //! float type whose value may be aliased as another type.
37 using alias_float_t = shz_alias_float_t;
38 //! int64_t type whose value may be aliased as another type.
39 using alias_int64_t = shz_alias_int64_t;
40 //! uint64_t type whose value may be aliased as another type.
41 using alias_uint64_t = shz_alias_uint64_t;
42 //! double type whose value may be aliased as another type.
43 using alias_double_t = shz_alias_double_t;
44
45 //! @}
46}
47
48#endif
Namespace enclosing the SH4ZAM C++ API.
Definition shz_cdefs.hpp:21
SHZ_ALIASING int16_t shz_alias_int16_t
int16_t type whose value may be aliased as another type.
Definition shz_cdefs.h:164
SHZ_ALIASING double shz_alias_double_t
double type whose value may be aliased as another type.
Definition shz_cdefs.h:178
SHZ_ALIASING uint32_t shz_alias_uint32_t
uint32_t type whose value may be aliased as another type.
Definition shz_cdefs.h:170
SHZ_ALIASING int64_t shz_alias_int64_t
int64_t type whose value may be aliased as another type.
Definition shz_cdefs.h:174
SHZ_ALIASING uint16_t shz_alias_uint16_t
uint16_t type whose value may be aliased as another type.
Definition shz_cdefs.h:166
SHZ_ALIASING int32_t shz_alias_int32_t
int32_t type whose value may be aliased as another type.
Definition shz_cdefs.h:168
SHZ_ALIASING uint64_t shz_alias_uint64_t
uint64_t type whose value may be aliased as another type.
Definition shz_cdefs.h:176
SHZ_ALIASING float shz_alias_float_t
float type whose value may be aliased as another type.
Definition shz_cdefs.h:172