strings/print_int.hpp
#ifndef STLPLUS_PRINT_INT
#define STLPLUS_PRINT_INT
////////////////////////////////////////////////////////////////////////////////
// Author: Andy Rushton
// Copyright: (c) Southampton University 1999-2004
// (c) Andy Rushton 2004 onwards
// License: BSD License, see ../docs/license.html
// Print integer types
// This extends the formatting available from iostream
////////////////////////////////////////////////////////////////////////////////
#include "strings_fixes.hpp"
#include "format_types.hpp"
#include <iostream>
#include <stdexcept>
namespace stlplus
{
////////////////////////////////////////////////////////////////////////////////
// Conversions of Integer types to string
////////////////////////////////////////////////////////////////////////////////
// The radix (i.e. base) for these conversions can be any value from base 2 to base 36
// specifying any other radix causes std::invalid_argument to be thrown
// The way in which the radix is displayed is defined in radix_types.hpp
// If any other value is used, std::invalid_argument is thrown
// The width argument specifies the number of numerical digits to use in the result
// This is a minimum - if the value requires more digits then it will be wider than the width argument
// However, if it is smaller, then it will be extended to the specified width
// Then, the radix display prefix is added to this width
// For example, using the hash representation of 0 in hex with width=4 gives:
// 16#0000 - so there's 4 digits in the number part
// exceptions: std::invalid_argument
void print_short(std::ostream& device, short i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
// exceptions: std::invalid_argument
void print_unsigned_short(std::ostream& device, unsigned short i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
// exceptions: std::invalid_argument
void print_int(std::ostream& device, int i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
// exceptions: std::invalid_argument
void print_unsigned(std::ostream& device, unsigned i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
// exceptions: std::invalid_argument
void print_long(std::ostream& device, long i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
// exceptions: std::invalid_argument
void print_unsigned_long(std::ostream& device, unsigned long i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
// exceptions: std::invalid_argument
void print_longlong(std::ostream& device, long long i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
// exceptions: std::invalid_argument
void print_unsigned_longlong(std::ostream& device, unsigned long long i,
unsigned radix = 10,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
////////////////////////////////////////////////////////////////////////////////
// exceptions: std::invalid_argument
void print_address(std::ostream& device, const void*,
unsigned radix = 16,
radix_display_t display = radix_c_style_or_hash,
unsigned width = 0);
////////////////////////////////////////////////////////////////////////////////
} // end namespace stlplus
#endif