9#ifndef INCLUDED_BSLFMT_FORMATTERCHARACTER
10#define INCLUDED_BSLFMT_FORMATTERCHARACTER
94#include <bslscm_version.h>
120template <
class t_TYPE,
int t_SIZE>
145 typedef unsigned short int type;
153 typedef unsigned long int type;
161 typedef unsigned long long int type;
173template <
class t_VALUE_TYPE,
class t_CHAR>
179 template <
class t_ITERATOR>
180 static t_ITERATOR
output(
const t_VALUE_TYPE value, t_ITERATOR out)
183 typename bsl::iterator_traits<t_ITERATOR>::value_type OutputType;
201 template <
class t_ITERATOR>
202 static t_ITERATOR
output(
const char value, t_ITERATOR out)
205 typename bsl::iterator_traits<t_ITERATOR>::value_type OutputType;
225 *out =
static_cast<wchar_t>(
static_cast<unsigned char>(value));
239template <
class t_VALUE,
class t_CHAR>
249 template <
class t_FORMAT_CONTEXT>
250 typename t_FORMAT_CONTEXT::iterator
format(
252 t_FORMAT_CONTEXT& formatContext)
const;
263: BloombergLP::bslfmt::FormatterCharacter_Imp<char, wchar_t> {
270: BloombergLP::bslfmt::FormatterCharacter_Imp<char, char> {
277: BloombergLP::bslfmt::FormatterCharacter_Imp<wchar_t, wchar_t> {
293template <
class t_VALUE,
class t_CHAR>
294template <
class t_FORMAT_CONTEXT>
296typename t_FORMAT_CONTEXT::iterator
299 t_FORMAT_CONTEXT& formatContext)
const
304 const Specification& parsedSpec = this->specification();
306 if (Specification::e_CHARACTER_CHARACTER == parsedSpec.formatType()) {
307 char dummyPrefix = 0;
309 t_CHAR *valueBegin = &valueBuf;
315 return this->outputValue(&dummyPrefix,
323 sizeof(wchar_t)>::type
326 const int maxPrefixSize = 4;
327 char prefixBuf[maxPrefixSize];
328 char *prefixBegin = prefixBuf;
329 char *prefixEnd = prefixBuf;
331 UintType intValue =
static_cast<UintType
>(value);
337 const int maxValueSize =
338 NFUtil::ToCharsMaxLength<UintType, 2>::k_VALUE;
339 t_CHAR valueBuf[maxValueSize];
340 t_CHAR *valueBegin = valueBuf;
341 t_CHAR *valueEnd = valueBuf;
343 prefixEnd = this->formatPrefix(prefixBuf, maxPrefixSize, intValue);
344 valueEnd = this->formatValue(valueBuf, maxValueSize, intValue);
345 return this->outputValue(prefixBegin,
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:231
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlat_valuetypefunctions.h:939
Definition bslfmt_enablestreamedformatter.h:130
Definition bslmf_issame.h:146