176 template <
typename... TArgs>
181 constexpr bool Argument_has_type_Boxes=
182 (
sizeof...(TArgs) == 1)
183 && ( std::is_base_of_v<
BoxesHA, std::decay< std::tuple_element<0, std::tuple<TArgs...>>>>
184 || std::is_base_of_v<
BoxesMA, std::decay< std::tuple_element<0, std::tuple<TArgs...>>>>
185 || std::is_base_of_v<
BoxesPA, std::decay< std::tuple_element<0, std::tuple<TArgs...>>>> );
186 static_assert( !Argument_has_type_Boxes,
187 "To pass a container of type Boxes to a formatter, use method FormatArgs." );
191 boxes.Add( std::forward<TArgs>( args )... );
224 template<
typename TAllocator>
280 #if !ALIB_SINGLE_THREADED
322 const String& formatString,
324 int startArgument ) = 0;
334 template<
typename TAllocator>
#define ALIB_DBG_PREVENT_RECURSIVE_METHOD_CALLS_MEMBER_DECL
#define ALIB_DEBUG_CRITICAL_SECTIONS
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace alib.
strings::TNumberFormat< character > NumberFormat
Type alias in namespace alib.
boxing::TBoxes< PoolAllocator > BoxesPA
Type alias in namespace alib.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
format::Formatter Formatter
Type alias in namespace alib.
boxing::Box Box
Type alias in namespace alib.
boxing::TBoxes< MonoAllocator > BoxesMA
Type alias in namespace alib.
containers::SharedPtr< format::Formatter > SPFormatter
strings::TString< character > String
Type alias in namespace alib.
boxing::TBoxes< lang::HeapAllocator > BoxesHA
Type alias in namespace alib.
containers::SharedPtr< T, TAllocator > SharedPtr
Type alias in namespace alib.
DbgCriticalSections(const char *name)