Skip to main content
Ctrl+K
Black Magic  documentation - Home Black Magic  documentation - Home
  • F.A.Q.
  • C Compilation
  • Preprocessor
  • Getting started: using existing macros
  • A log library
  • Optional arguments: simple case
  • Optional arguments: General case
  • Counting arguments
  • Quotes about macros
  • Reference
    • Macros for writing macros
    • Terminal colors
    • Logging Library
    • Enum utilities
    • White magic
  • .md

Reference

Reference#

  • Macros for writing macros
    • Create a string literal
      • LITERAL_STRINGIZE
      • STRINGIZE
    • Combine tokens
      • LITERAL_CONCAT
      • CONCAT
    • Count arguments
      • ARG_COUNT
    • Fold
      • FOLD
      • TREE_FOLD
      • FOLD_RIGHT
    • Iteration
      • EACH
      • FOR
    • Manipulate pairs
      • PAIR_FIRST
      • PAIR_LAST
      • PAIR_FLATTEN
      • PAIR_ASSIGN
    • Misc.
      • IDENTITY
      • ADD_COMMA
      • ADD_COMMA_FLAT
  • Terminal colors
    • NORMAL
    • BOLD
    • DIM
    • ITALIC
    • UNDERLINED
    • NEGATIVE
    • BLACK
    • RED
    • GREEN
    • YELLOW
    • BLUE
    • PURPLE
    • CYAN
    • LIGHT_GREY
    • DEFAULT
    • WHITE
    • BG_BLACK
    • BG_RED
    • BG_GREEN
    • BG_YELLOW
    • BG_BLUE
    • BG_PURPLE
    • BG_CYAN
    • BG_LIGHT_GREY
    • BG_DEFAULT
    • BG_WHITE
    • COLOR
    • COLOR_JOIN
  • Logging Library
    • LOG_FILE
    • LOG_LEVEL
    • LOG_FORMAT
    • logging_callback
    • LOG_LEVEL_NONE
    • LOG_LEVEL_FATAL
    • LOG_LEVEL_ERROR
    • LOG_LEVEL_WARNING
    • LOG_LEVEL_INFO
    • LOG_LEVEL_DEBUG
    • LOG_LEVEL_TRACE
    • LOG_LEVEL_ALL
    • LOG_FORMAT_NONE
    • LOG_FORMAT_CONSOLE
    • LOG_FORMAT_COLOR
    • LOG_FORMAT_MARKDOWN
    • LOG_FORMAT_JSON
    • log_header
    • log_fatal
    • log_error
    • log_warning
    • log_info
    • log_debug
    • log_trace
    • log_force
  • Enum utilities
    • DECLARE_ENUM_WITH_VALUES
    • DECLARE_ENUM_WITH_STRINGS
  • White magic
    • ARRAY_LENGTH
    • max
    • min

previous

Quotes about macros

next

Macros for writing macros

By Antoine Gagniere

© Copyright 2023-2026.