UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PreprocessorHelpers.h File Reference

Go to the source code of this file.

Macros

#define UE_STRINGIZE(Token)   UE_PRIVATE_STRINGIZE(Token)
 
#define UE_PRIVATE_STRINGIZE(Token)   #Token
 
#define UE_JOIN(TokenA, TokenB)   UE_PRIVATE_JOIN(TokenA, TokenB)
 
#define UE_PRIVATE_JOIN(TokenA, TokenB)   TokenA##TokenB
 
#define UE_JOIN_FIRST(Token, ...)   UE_PRIVATE_JOIN_FIRST(Token, __VA_ARGS__)
 
#define UE_PRIVATE_JOIN_FIRST(Token, ...)   Token##__VA_ARGS__
 
#define UE_IF(OneOrZero, Token1, Token0)   UE_JOIN(UE_PRIVATE_IF_, OneOrZero)(Token1, Token0)
 
#define UE_PRIVATE_IF_1(Token1, Token0)   Token1
 
#define UE_PRIVATE_IF_0(Token1, Token0)   Token0
 
#define UE_COMMA_SEPARATED(First, ...)   First, ##__VA_ARGS__
 
#define UE_VA_ARG_COUNT(...)   UE_APPEND_VA_ARG_COUNT(, ##__VA_ARGS__)
 
#define UE_APPEND_VA_ARG_COUNT(Prefix, ...)   UE_PRIVATE_APPEND_VA_ARG_COUNT(Prefix, ##__VA_ARGS__, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
 
#define UE_PRIVATE_APPEND_VA_ARG_COUNT(Prefix, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Count, ...)   Prefix##Count
 
#define UE_EMPTY
 
#define UE_EMPTY_FUNCTION(...)
 
#define UE_REMOVE_OPTIONAL_PARENS(...)   UE_JOIN_FIRST(UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS,UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS __VA_ARGS__)
 
#define UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS(...)   UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS __VA_ARGS__
 
#define UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENSUE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS
 
#define PLATFORM_HEADER_NAME   UBT_COMPILED_PLATFORM
 
#define UE_SOURCE_LOCATION   TEXT(__FILE__ "(" UE_STRINGIZE(__LINE__) ")")
 
#define PLATFORM_IS_EXTENSION   0
 
#define COMPILED_PLATFORM_HEADER(Suffix)   PREPROCESSOR_TO_STRING(PREPROCESSOR_JOIN(PLATFORM_HEADER_NAME/PLATFORM_HEADER_NAME, Suffix))
 
#define COMPILED_PLATFORM_HEADER_GENERATED(Suffix)   PREPROCESSOR_TO_STRING(PREPROCESSOR_JOIN(PLATFORM_HEADER_NAME, Suffix))
 
#define COMPILED_PLATFORM_HEADER_WITH_PREFIX(Prefix, Suffix)   PREPROCESSOR_TO_STRING(Prefix/PLATFORM_HEADER_NAME/PREPROCESSOR_JOIN(PLATFORM_HEADER_NAME, Suffix))
 
#define PREPROCESSOR_TO_STRING(Token)   UE_STRINGIZE(Token)
 
#define PREPROCESSOR_JOIN(TokenA, TokenB)   UE_JOIN(TokenA, TokenB)
 
#define PREPROCESSOR_JOIN_FIRST(Token, ...)   UE_JOIN_FIRST(Token, ##__VA_ARGS__)
 
#define PREPROCESSOR_IF(OneOrZero, Token1, Token0)   UE_IF(OneOrZero, Token1, Token0)
 
#define PREPROCESSOR_COMMA_SEPARATED(First, ...)   UE_COMMA_SEPARATED(First, ##__VA_ARGS__)
 
#define PREPROCESSOR_VA_ARG_COUNT(...)   UE_VA_ARG_COUNT(__VA_ARGS__)
 
#define PREPROCESSOR_APPEND_VA_ARG_COUNT(Prefix, ...)   UE_APPEND_VA_ARG_COUNT(Prefix, ##__VA_ARGS__)
 
#define PREPROCESSOR_NOTHING   UE_EMPTY
 
#define PREPROCESSOR_NOTHING_FUNCTION(...)   UE_EMPTY_FUNCTION(__VA_ARGS__)
 
#define PREPROCESSOR_REMOVE_OPTIONAL_PARENS(...)   UE_REMOVE_OPTIONAL_PARENS(__VA_ARGS__)
 

Macro Definition Documentation

◆ COMPILED_PLATFORM_HEADER

#define COMPILED_PLATFORM_HEADER (   Suffix)    PREPROCESSOR_TO_STRING(PREPROCESSOR_JOIN(PLATFORM_HEADER_NAME/PLATFORM_HEADER_NAME, Suffix))

◆ COMPILED_PLATFORM_HEADER_GENERATED

#define COMPILED_PLATFORM_HEADER_GENERATED (   Suffix)    PREPROCESSOR_TO_STRING(PREPROCESSOR_JOIN(PLATFORM_HEADER_NAME, Suffix))

◆ COMPILED_PLATFORM_HEADER_WITH_PREFIX

#define COMPILED_PLATFORM_HEADER_WITH_PREFIX (   Prefix,
  Suffix 
)    PREPROCESSOR_TO_STRING(Prefix/PLATFORM_HEADER_NAME/PREPROCESSOR_JOIN(PLATFORM_HEADER_NAME, Suffix))

◆ PLATFORM_HEADER_NAME

#define PLATFORM_HEADER_NAME   UBT_COMPILED_PLATFORM

◆ PLATFORM_IS_EXTENSION

#define PLATFORM_IS_EXTENSION   0

◆ PREPROCESSOR_APPEND_VA_ARG_COUNT

#define PREPROCESSOR_APPEND_VA_ARG_COUNT (   Prefix,
  ... 
)    UE_APPEND_VA_ARG_COUNT(Prefix, ##__VA_ARGS__)

◆ PREPROCESSOR_COMMA_SEPARATED

#define PREPROCESSOR_COMMA_SEPARATED (   First,
  ... 
)    UE_COMMA_SEPARATED(First, ##__VA_ARGS__)

◆ PREPROCESSOR_IF

#define PREPROCESSOR_IF (   OneOrZero,
  Token1,
  Token0 
)    UE_IF(OneOrZero, Token1, Token0)

◆ PREPROCESSOR_JOIN

#define PREPROCESSOR_JOIN (   TokenA,
  TokenB 
)    UE_JOIN(TokenA, TokenB)

◆ PREPROCESSOR_JOIN_FIRST

#define PREPROCESSOR_JOIN_FIRST (   Token,
  ... 
)    UE_JOIN_FIRST(Token, ##__VA_ARGS__)

◆ PREPROCESSOR_NOTHING

#define PREPROCESSOR_NOTHING   UE_EMPTY

◆ PREPROCESSOR_NOTHING_FUNCTION

#define PREPROCESSOR_NOTHING_FUNCTION (   ...)    UE_EMPTY_FUNCTION(__VA_ARGS__)

◆ PREPROCESSOR_REMOVE_OPTIONAL_PARENS

#define PREPROCESSOR_REMOVE_OPTIONAL_PARENS (   ...)    UE_REMOVE_OPTIONAL_PARENS(__VA_ARGS__)

◆ PREPROCESSOR_TO_STRING

#define PREPROCESSOR_TO_STRING (   Token)    UE_STRINGIZE(Token)

◆ PREPROCESSOR_VA_ARG_COUNT

#define PREPROCESSOR_VA_ARG_COUNT (   ...)    UE_VA_ARG_COUNT(__VA_ARGS__)

◆ UE_APPEND_VA_ARG_COUNT

#define UE_APPEND_VA_ARG_COUNT (   Prefix,
  ... 
)    UE_PRIVATE_APPEND_VA_ARG_COUNT(Prefix, ##__VA_ARGS__, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)

◆ UE_COMMA_SEPARATED

#define UE_COMMA_SEPARATED (   First,
  ... 
)    First, ##__VA_ARGS__

◆ UE_EMPTY

#define UE_EMPTY

◆ UE_EMPTY_FUNCTION

#define UE_EMPTY_FUNCTION (   ...)

◆ UE_IF

◆ UE_JOIN

#define UE_JOIN (   TokenA,
  TokenB 
)    UE_PRIVATE_JOIN(TokenA, TokenB)

◆ UE_JOIN_FIRST

#define UE_JOIN_FIRST (   Token,
  ... 
)    UE_PRIVATE_JOIN_FIRST(Token, __VA_ARGS__)

◆ UE_PRIVATE_APPEND_VA_ARG_COUNT

#define UE_PRIVATE_APPEND_VA_ARG_COUNT (   Prefix,
  A,
  B,
  C,
  D,
  E,
  F,
  G,
  H,
  I,
  J,
  K,
  L,
  M,
  N,
  O,
  P,
  Q,
  R,
  S,
  T,
  U,
  V,
  W,
  X,
  Y,
  Z,
  Count,
  ... 
)    Prefix##Count

◆ UE_PRIVATE_IF_0

#define UE_PRIVATE_IF_0 (   Token1,
  Token0 
)    Token0

◆ UE_PRIVATE_IF_1

#define UE_PRIVATE_IF_1 (   Token1,
  Token0 
)    Token1

◆ UE_PRIVATE_JOIN

#define UE_PRIVATE_JOIN (   TokenA,
  TokenB 
)    TokenA##TokenB

◆ UE_PRIVATE_JOIN_FIRST

#define UE_PRIVATE_JOIN_FIRST (   Token,
  ... 
)    Token##__VA_ARGS__

◆ UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS

#define UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS (   ...)    UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS __VA_ARGS__

◆ UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENSUE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS

#define UE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENSUE_PRIVATE_PREPROCESSOR_REMOVE_OPTIONAL_PARENS

◆ UE_PRIVATE_STRINGIZE

#define UE_PRIVATE_STRINGIZE (   Token)    #Token

◆ UE_REMOVE_OPTIONAL_PARENS

◆ UE_SOURCE_LOCATION

#define UE_SOURCE_LOCATION   TEXT(__FILE__ "(" UE_STRINGIZE(__LINE__) ")")

◆ UE_STRINGIZE

#define UE_STRINGIZE (   Token)    UE_PRIVATE_STRINGIZE(Token)

◆ UE_VA_ARG_COUNT

#define UE_VA_ARG_COUNT (   ...)    UE_APPEND_VA_ARG_COUNT(, ##__VA_ARGS__)