33template<
typename... TAssociatedTypes >
34struct DbgStringTable :
public std::vector<std::tuple<String, TAssociatedTypes...>>
40 using Base = std::vector<ElementType>;
60 template <
typename... TArgs>
64 Base::emplace_back(
String(
allocator, src), std::forward<TArgs>(args)... );
65 return std::get<0>( std::vector<std::tuple<String, TAssociatedTypes...>>::back() );
104 bool srcIsStringType,
105 bool srcIsUnboxableStringType,
106 bool isValueTypeCustomized,
107 bool isPointerTypeCustomized,
108 bool fitsToPlaceholder,
109 bool copyConstructible,
110 bool triviallyDestructible,
129template<
typename TBoxable>
131 const String& headline=
A_CHAR(
"Boxing Information For Boxable Type: "),
135 using TSrc= std::remove_cv_t<TBoxable>;
142 for(
int theSakeOfAutoTabs= 0 ; theSakeOfAutoTabs < 2 ; ++theSakeOfAutoTabs )
148 if( std::same_as<TSrc, std::nullptr_t> )
150 target << indent <<
"'std::nullptr_t' sets a box to void state" <<
NEW_LINE;
157 std::is_pointer_v<TSrc>,
163 std::is_copy_constructible <TVal>::value,
164 std::is_trivially_destructible<TVal>::value,
165 boxing::IsUnboxable <TSrc > );
193template<
typename TBoxable>
217 const std::vector<std::pair<const std::type_info*,uinteger>>& input,
233void dumpFunctions (
const std::vector<std::pair<const std::type_info*,uinteger>>& input,
237 DbgStringTable<uinteger>& tmpStrings );
254 bool includeFunctions=
false );
270 DbgStringTable<const detail::VTable*>& vtableNames,
272 bool includeFunctions );
274#if ALIB_DEBUG_CONTAINERS
const detail::VTable * DbgGetVTable() const
constexpr integer Length() const
#define ALIB_LOCK_RECURSIVE_WITH(lock)
void dumpVTables(AString &result, DbgStringTable< const detail::VTable * > &vtableNames, bool staticVtables, bool includeFunctions)
AString & removeNamespaces(AString &string, integer startIndex)
AString DumpFunctions(const std::vector< std::pair< const std::type_info *, uinteger > > &input, const String &headline, const String &indent)
void typeInfo(AString &target, const detail::VTable *vtable, const String &indent, bool srcIsPointer, bool srcIsStringType, bool srcIsUnboxableStringType, bool isValueTypeCustomized, bool isPointerTypeCustomized, bool fitsToPlaceholder, bool copyConstructible, bool triviallyDestructible, bool isUnboxable)
AString DumpVTables(bool staticVtables, bool includeFunctions)
AString TypeInfo(const Box &box, const String &headline=A_CHAR("Boxing Information For Boxable Type: "), const String &indent=A_CHAR(" "))
void dumpFunctions(const std::vector< std::pair< const std::type_info *, uinteger > > &input, AString &output, const String &headline, const String &indent, DbgStringTable< uinteger > &tmpStrings)
void DumpCustomFunctionHashMapMetrics(AString &target, bool detailedBucketList)
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace alib.
constexpr CString NEW_LINE
A zero-terminated string containing the new-line character sequence.
constexpr const String EMPTY_STRING
An empty string of the default character type.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
format::Formatter Formatter
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
NLocalString< 512 > NString512
Type alias name for TLocalString<nchar,512>.
std::tuple< String, TAssociatedTypes... > ElementType
Shortcut to the std::tuple-type that instantiations of this template class store.
DbgStringTable(MonoAllocator &monoAllocator)
MonoAllocator & allocator
Allocator for making copies of inserted strings.
std::vector< ElementType > Base
Shortcut to the base type of this type.
String & Add(const String &src, TArgs &&... args)
The custom function hash.