LeviLamina
Loading...
Searching...
No Matches
Macro.h
1#pragma once
2
3#include "ll/api/base/CompilerPredefine.h"
4
5#define LL_VA_EXPAND(...) __VA_ARGS__
6
7#ifndef LLAPI
8#ifdef LL_EXPORT
9#define LLAPI [[maybe_unused]] LL_SHARED_EXPORT
10#else
11#define LLAPI [[maybe_unused]] LL_SHARED_IMPORT
12#endif
13#endif
14
15#ifndef LLCAPI
16#define LLCAPI extern "C" LLAPI
17#endif
18
19#ifndef LLNDAPI
20#define LLNDAPI [[nodiscard]] LLAPI
21#endif
22
23#ifndef LL_MAY_CONSTEXPR
24#ifdef __clang__
25#define LL_MAY_CONSTEXPR inline
26#else
27#define LL_MAY_CONSTEXPR constexpr
28#endif
29#endif
30
31#ifndef LL_UNIQUE_TYPE
32#ifdef __INTELLISENSE__
33#define LL_UNIQUE_TYPE decltype((nullptr))
34#else
35#define LL_UNIQUE_TYPE decltype(([] {}))
36#endif
37#endif