10# if !defined (HPP_ALIB_LANG_FORMAT_FORMATTER_STD)
13# if !defined (HPP_ALIB_STRINGS_FORMAT)
16# if !defined(HPP_ALIB_LANG_FORMAT_EXCEPTIONS)
21#if !defined (_GLIBCXX_CMATH) && !defined (_CMATH_)
30 #pragma clang diagnostic push
31 #pragma clang diagnostic ignored "-Wreserved-id-macro"
35 #pragma clang diagnostic pop
44: formatterName( formatterClassName )
56 const String& pFormatString,
57 const Boxes& pArguments,
87 parser.template ConsumeChars<false>(1);
212 || arg->
IsType< int64_t>()
213 || arg->
IsType<uint64_t>()
287 ALIB_ERROR(
"FMT",
"Internal error: this should have been handled by method checkStdFieldAgainstArgument" )
307 target->_<
false>( wc );
327 #if ALIB_SIZEOF_INTEGER == 4
349 digits-=
static_cast<int>((target->Length() - fieldStartIdx));
378 #if ALIB_SIZEOF_INTEGER == 8
381 #elif ALIB_SIZEOF_INTEGER == 4
404 auto classification= std::fpclassify(value);
407 if( classification != FP_NAN )
409 bool negative= std::signbit(value);
410 if( classification == FP_ZERO && negative )
456 target->_<
false>(
'%' );
477 if( std::is_same<character, wchar>::value )
485 integer qtyWCharsAdded= target->
Substring<
false>( oldTargetLength, target->
Length() - oldTargetLength ).WStringLength();
491 if( qtyWCharsAdded == target->
Length() - oldTargetLength )
496 else if( qtyWCharsAdded < 256)
501 wBuf.
Append<
false>( target->
Buffer() + oldTargetLength, target->
Length() - oldTargetLength );
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) CallDirect(typename TFDecl::Signature function, TArgs &&... args) const
uinteger UnboxUnsignedIntegral() const
wchar UnboxCharacter() const
bool IsFloatingPoint() const
TFDecl::Signature GetFunction(Reach searchScope, bool isInvocation=false) const
bool IsUnsignedIntegral() const
ALIB_API size_t Hashcode() const
bool IsSignedIntegral() const
unsigned int GetPlaceholderUsageLength() const
ALIB_API double UnboxFloatingPoint() const
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) Call(TArgs &&... args) const
const Placeholder & Data() const
integer UnboxSignedIntegral() const
const TUnboxable Unbox() const
TAString & ShortenTo(integer newLength)
TAString & Append(const TCharSrc *src, integer srcLength)
TAString & _(const TString< TChar > &src, integer regionStart, integer regionLength=MAX_LEN)
void DbgDisableBufferReplacementWarning()
constexpr bool IsNotEmpty() const
constexpr integer Length() const
TString< TChar > Substring(integer regionStart, integer regionLength=MAX_LEN) const
constexpr const TChar * Buffer() const
#define ALIB_CALLER_NULLED
#define ALIB_WARNINGS_RESTORE
#define ALIB_WARNINGS_ALLOW_UNSAFE_BUFFER_USAGE
#define ALIB_ASSERT(cond)
#define ALIB_SIZEOF_INTEGER
platform_specific integer
@ Local
Denotes local reach.
@ Right
Chooses right alignment.
@ Left
Chooses left alignment.
lang::Exception Exception
Type alias in namespace alib.
characters::wchar wchar
Type alias in namespace alib.
detail::UnionIntegrals Integrals
Collection of integrals of different sizes.
uint8_t UInt8
8-bit unsigned integral.
uinteger UInt
Unsigned integral of platform-dependent size.
uint16_t UInt16
16-bit unsigned integral.
uint32_t UInt32
32-bit unsigned integral. Available only if platform is not of 32-bit.
uint64_t UInt64
64-bit unsigned integral. Available only if platform is not of 64-bit.