#pragma once #include "Auxiliary/literals.hpp" #include #define __used __attribute__((used)) #define __no_align __attribute__((packed)) #define __no_inline __attribute__((noinline)) #define __no_return __attribute__((noreturn)) #define __always_inline __attribute__((always_inline)) #define __section(name) __attribute__((section(name))) #define __collect(...) __VA_ARGS__ #ifndef __friends #define __friends private #endif //!__friends #ifdef __cplusplus #define __constexpr constexpr #define START_C_FUNCTIONS extern "C" { #define END_C_FUNCTIONS } #else #define __constexpr #define START_C_FUNCTIONS #define END_C_FUNCTIONS #endif