1//===-- IOStreamMacros.h ----------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef liblldb_IOStreamMacros_h_ 11#define liblldb_IOStreamMacros_h_ 12#if defined(__cplusplus) 13 14#include <iomanip> 15 16#define RAW_HEXBASE std::setfill('0') << std::hex << std::right 17#define HEXBASE '0' << 'x' << RAW_HEXBASE 18#define RAWHEX8(x) RAW_HEXBASE << std::setw(2) << ((uint32_t)(x)) 19#define RAWHEX16 RAW_HEXBASE << std::setw(4) 20#define RAWHEX32 RAW_HEXBASE << std::setw(8) 21#define RAWHEX64 RAW_HEXBASE << std::setw(16) 22#define HEX8(x) HEXBASE << std::setw(2) << ((uint32_t)(x)) 23#define HEX16 HEXBASE << std::setw(4) 24#define HEX32 HEXBASE << std::setw(8) 25#define HEX64 HEXBASE << std::setw(16) 26#define RAW_HEX(x) RAW_HEXBASE << std::setw(sizeof(x)*2) << (x) 27#define HEX(x) HEXBASE << std::setw(sizeof(x)*2) << (x) 28#define HEX_SIZE(x, sz) HEXBASE << std::setw((sz)) << (x) 29#define STRING_WIDTH(w) std::setfill(' ') << std::setw(w) 30#define LEFT_STRING_WIDTH(s, w) std::left << std::setfill(' ') << std::setw(w) << (s) << std::right 31#define DECIMAL std::dec << std::setfill(' ') 32#define DECIMAL_WIDTH(w) DECIMAL << std::setw(w) 33//#define FLOAT(n, d) std::setfill(' ') << std::setw((n)+(d)+1) << std::setprecision(d) << std::showpoint << std::fixed 34#define INDENT_WITH_SPACES(iword_idx) std::setfill(' ') << std::setw((iword_idx)) << "" 35#define INDENT_WITH_TABS(iword_idx) std::setfill('\t') << std::setw((iword_idx)) << "" 36 37#endif // #if defined(__cplusplus) 38#endif // liblldb_IOStreamMacros_h_ 39