ORIGINAL
|
Base class providing polymorphic string conversion capabilities. More...
#include <printable.h>
Inherited by original::autoPtr< TYPE, ownerPtr< TYPE, deleter< TYPE > >, deleter< TYPE > >, original::autoPtr< TYPE, strongPtr< TYPE, DELETER >, DELETER >, original::autoPtr< TYPE, weakPtr< TYPE, DELETER >, DELETER >, original::autoPtr< asyncWrapper< TYPE >, strongPtr< asyncWrapper< TYPE >, DELETER >, DELETER >, original::autoPtr< asyncWrapper< void >, strongPtr< asyncWrapper< void >, DELETER >, DELETER >, original::autoPtr< original::filter< TYPE >, strongPtr< original::filter< TYPE >, DELETER >, DELETER >, original::containerAdapter< TYPE, chain, allocator >, original::containerAdapter< TYPE, blocksList, allocator >, original::containerAdapter< priorityTask, vector, allocator >, original::containerAdapter< original::strongPtr< original::taskDelegator::taskBase >, chain, allocator >, original::couple< const K_TYPE, V_TYPE >, original::iterationStream< TYPE, array< TYPE, allocator< TYPE > > >, original::iterationStream< bool, bitSet< allocator< bool > > >, original::iterationStream< TYPE, blocksList< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, chain< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, forwardChain< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE *, vector< TYPE *, allocator< TYPE * > > >, original::iterationStream< TYPE, vector< TYPE, allocator< TYPE > > >, original::iterationStream< underlying_type, array< underlying_type, rebind_alloc_underlying > >, original::iterationStream< original::strongPtr< original::filter< TYPE > >, chain< original::strongPtr< original::filter< TYPE > >, allocator< original::strongPtr< original::filter< TYPE > > > > >, original::iterationStream< opts, chain< opts, allocator< opts > > >, original::iterationStream< hashNode *, vector< hashNode *, rebind_alloc_pointer > >, original::iterationStream< original::hashTable::hashNode *, vector< original::hashTable::hashNode *, rebind_alloc_pointer > >, original::iterationStream< original::skipList::skipListNode *, vector< original::skipList::skipListNode *, allocator< original::skipList::skipListNode * > > >, original::iterationStream< original::thread, array< original::thread, allocator< original::thread > > >, original::iterationStream< priorityTask, vector< priorityTask, allocator< priorityTask > > >, original::iterationStream< original::strongPtr< original::taskDelegator::taskBase >, chain< original::strongPtr< original::taskDelegator::taskBase >, allocator< original::strongPtr< original::taskDelegator::taskBase > > > >, original::iterationStream< original::strongPtr< original::transform< TYPE > >, chain< original::strongPtr< original::transform< TYPE > >, allocator< original::strongPtr< original::transform< TYPE > > > > >, original::iterator< couple< const K_TYPE, V_TYPE > >, original::iterator< const TYPE >, original::iterator< bool >, original::threadBase< thread >, original::tuple< MUTEX *... >, original::wrapper< couple< const K_TYPE, V_TYPE > >, original::JMap< K_TYPE, V_TYPE, Compare, ALLOC >, original::JSet< TYPE, Compare, ALLOC >, original::autoPtr< TYPE, DERIVED, DELETER >, original::containerAdapter< TYPE, SERIAL, ALLOC >, original::couple< F_TYPE, S_TYPE >, original::error, original::hashMap< K_TYPE, V_TYPE, HASH, ALLOC >, original::hashSet< TYPE, HASH, ALLOC >, original::iterationStream< TYPE, DERIVED >, original::iterator< TYPE >, original::threadBase< DERIVED >, original::time::UTCTime, original::time::duration, original::time::point, original::treeMap< K_TYPE, V_TYPE, Compare, ALLOC >, original::treeSet< TYPE, Compare, ALLOC >, original::tuple< TYPES >, and original::wrapper< TYPE >.
Public Member Functions | |
virtual std::string | className () const |
Gets the class name for type identification. | |
virtual std::string | toString (bool enter) const |
Generates formatted string representation. | |
operator std::string () const | |
Explicit conversion to std::string. | |
operator const char * () const | |
Explicit conversion to C-style string. | |
const char * | toCString (bool enter) const |
Direct C-string access with formatting control. | |
template<typename TYPE > | |
auto | formatString (const TYPE &t) -> std::string |
template<typename TYPE > | |
auto | formatCString (const TYPE &t) -> const char * |
template<typename TYPE > | |
auto | formatEnum (const TYPE &t) -> std::string |
template<typename TYPE > | |
auto | formatString (TYPE *const &ptr) -> std::string |
Static Public Member Functions | |
template<typename TYPE > | |
static std::string | formatString (const TYPE &t) |
Universal value-to-string conversion with type-specific formatting. | |
template<Printable TYPE> | |
static std::string | formatString (const TYPE &t) |
Specialization for types deriving from printable. | |
template<EnumType TYPE> | |
static std::string | formatString (const TYPE &t) |
Specialization for enum types with type-safe formatting. | |
template<typename TYPE > | |
static std::string | formatString (TYPE *const &ptr) |
Pointer-specific formatting with null safety. | |
template<typename TYPE > | |
static const char * | formatCString (const TYPE &t) |
C-string cache for temporary usage with static storage. | |
template<typename TYPE > | |
static std::string | formatEnum (const TYPE &t) |
Enum formatting utility with underlying value extraction. | |
template<> | |
auto | formatString (const char &t) -> std::string |
template<> | |
auto | formatString (const bool &t) -> std::string |
template<> | |
auto | formatString (const char *const &ptr) -> std::string |
Friends | |
std::ostream & | operator<< (std::ostream &os, const printable &p) |
Stream insertion operator for printable objects. | |
Base class providing polymorphic string conversion capabilities.
Inherit from this class to enable automatic string representation for output streams, C-style string access, and std::format support. Provides extensible formatting through template specializations.
|
inlinevirtual |
Gets the class name for type identification.
Override in derived classes to provide accurate type names.
Reimplemented in original::array< TYPE, ALLOC >::Iterator, original::array< TYPE, ALLOC >, original::array< original::thread >, original::array< underlying_type, rebind_alloc_underlying >, original::autoPtr< TYPE, DERIVED, DELETER >, original::autoPtr< asyncWrapper< TYPE >, strongPtr< asyncWrapper< TYPE >, DELETER >, DELETER >, original::autoPtr< asyncWrapper< void >, strongPtr< asyncWrapper< void >, DELETER >, DELETER >, original::autoPtr< original::filter< TYPE >, strongPtr< original::filter< TYPE >, DELETER >, DELETER >, original::autoPtr< TYPE, ownerPtr< TYPE, deleter< TYPE > >, deleter< TYPE > >, original::autoPtr< TYPE, strongPtr< TYPE, DELETER >, DELETER >, original::autoPtr< TYPE, weakPtr< TYPE, DELETER >, DELETER >, original::bitSet< ALLOC >::Iterator, original::bitSet< ALLOC >, original::blocksList< TYPE, ALLOC >::Iterator, original::blocksList< TYPE, ALLOC >, original::blocksList< TYPE, allocator< TYPE > >, original::chain< TYPE, ALLOC >::Iterator, original::chain< TYPE, ALLOC >, original::chain< opts >, original::chain< original::strongPtr< original::filter< TYPE > > >, original::chain< original::strongPtr< original::taskDelegator::taskBase >, allocator< original::strongPtr< original::taskDelegator::taskBase > > >, original::chain< original::strongPtr< original::transform< TYPE > > >, original::chain< TYPE, allocator< TYPE > >, original::containerAdapter< TYPE, SERIAL, ALLOC >, original::containerAdapter< original::strongPtr< original::taskDelegator::taskBase >, chain, allocator >, original::containerAdapter< priorityTask, vector, allocator >, original::containerAdapter< TYPE, blocksList, allocator >, original::containerAdapter< TYPE, chain, allocator >, original::couple< F_TYPE, S_TYPE >, original::couple< const K_TYPE, V_TYPE >, original::deque< TYPE, SERIAL, ALLOC >, original::error, original::outOfBoundError, original::valueError, original::nullPointerError, original::unSupportedMethodError, original::noElementError, original::callbackSignatureError, original::callbackReturnTypeError, original::allocateError, original::sysError, original::forwardChain< TYPE, ALLOC >::Iterator, original::forwardChain< TYPE, ALLOC >, original::iterable< TYPE >::iterAdaptor, original::iterationStream< TYPE, DERIVED >, original::iterationStream< bool, bitSet< allocator< bool > > >, original::iterationStream< hashNode *, vector< hashNode *, rebind_alloc_pointer > >, original::iterationStream< opts, chain< opts, allocator< opts > > >, original::iterationStream< original::hashTable::hashNode *, vector< original::hashTable::hashNode *, rebind_alloc_pointer > >, original::iterationStream< original::skipList::skipListNode *, vector< original::skipList::skipListNode *, allocator< original::skipList::skipListNode * > > >, original::iterationStream< original::strongPtr< original::filter< TYPE > >, chain< original::strongPtr< original::filter< TYPE > >, allocator< original::strongPtr< original::filter< TYPE > > > > >, original::iterationStream< original::strongPtr< original::taskDelegator::taskBase >, chain< original::strongPtr< original::taskDelegator::taskBase >, allocator< original::strongPtr< original::taskDelegator::taskBase > > > >, original::iterationStream< original::strongPtr< original::transform< TYPE > >, chain< original::strongPtr< original::transform< TYPE > >, allocator< original::strongPtr< original::transform< TYPE > > > > >, original::iterationStream< original::thread, array< original::thread, allocator< original::thread > > >, original::iterationStream< priorityTask, vector< priorityTask, allocator< priorityTask > > >, original::iterationStream< TYPE *, vector< TYPE *, allocator< TYPE * > > >, original::iterationStream< TYPE, array< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, blocksList< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, chain< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, forwardChain< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, vector< TYPE, allocator< TYPE > > >, original::iterationStream< underlying_type, array< underlying_type, rebind_alloc_underlying > >, original::iterator< TYPE >, original::iterator< bool >, original::iterator< const TYPE >, original::iterator< couple< const K_TYPE, V_TYPE > >, original::hashMap< K_TYPE, V_TYPE, HASH, ALLOC >::Iterator, original::hashMap< K_TYPE, V_TYPE, HASH, ALLOC >, original::treeMap< K_TYPE, V_TYPE, Compare, ALLOC >::Iterator, original::treeMap< K_TYPE, V_TYPE, Compare, ALLOC >, original::JMap< K_TYPE, V_TYPE, Compare, ALLOC >::Iterator, original::JMap< K_TYPE, V_TYPE, Compare, ALLOC >, original::ownerPtr< TYPE, DELETER >, original::prique< TYPE, Callback, SERIAL, ALLOC >, original::prique< priorityTask, taskComparator, vector >, original::queue< TYPE, SERIAL, ALLOC >, original::queue< original::strongPtr< original::taskDelegator::taskBase > >, original::randomAccessIterator< TYPE, ALLOC >, original::refCntPtr< TYPE, DERIVED, DELETER >, original::refCntPtr< asyncWrapper< TYPE >, strongPtr< asyncWrapper< TYPE >, DELETER >, DELETER >, original::refCntPtr< asyncWrapper< void >, strongPtr< asyncWrapper< void >, DELETER >, DELETER >, original::refCntPtr< original::filter< TYPE >, strongPtr< original::filter< TYPE >, DELETER >, DELETER >, original::refCntPtr< TYPE, strongPtr< TYPE, DELETER >, DELETER >, original::refCntPtr< TYPE, weakPtr< TYPE, DELETER >, DELETER >, original::strongPtr< TYPE, DELETER >, original::strongPtr< asyncWrapper< TYPE > >, original::strongPtr< asyncWrapper< void > >, original::strongPtr< original::filter< TYPE > >, original::strongPtr< TYPE >, original::weakPtr< TYPE, DELETER >, original::hashSet< TYPE, HASH, ALLOC >::Iterator, original::hashSet< TYPE, HASH, ALLOC >, original::treeSet< TYPE, Compare, ALLOC >::Iterator, original::treeSet< TYPE, Compare, ALLOC >, original::JSet< TYPE, Compare, ALLOC >::Iterator, original::JSet< TYPE, Compare, ALLOC >, original::stack< TYPE, SERIAL, ALLOC >, original::stepIterator< TYPE >, original::tuple< TYPES >, original::tuple< MUTEX *... >, original::vector< TYPE, ALLOC >::Iterator, original::vector< TYPE, ALLOC >, original::vector< hashNode *, rebind_alloc_pointer >, original::vector< original::hashTable::hashNode *, rebind_alloc_pointer >, original::vector< original::skipList::skipListNode * >, original::vector< priorityTask, allocator< priorityTask > >, original::vector< TYPE * >, original::wrapper< TYPE >, original::wrapper< couple< const K_TYPE, V_TYPE > >, original::threadBase< DERIVED >, original::threadBase< thread >, original::thread, original::time::duration, original::time::point, and original::time::UTCTime.
C-string cache for temporary usage with static storage.
TYPE | Input type |
t | Value to format |
Enum formatting utility with underlying value extraction.
TYPE | Enum type |
t | Enum value |
Formats enum values by combining the type name from typeid with the underlying integer value. Provides consistent enum representation across the codebase.
|
static |
Universal value-to-string conversion with type-specific formatting.
TYPE | Input value type |
t | Value to format |
Automatically dispatches to appropriate formatting based on type:
The function uses template specialization and concept constraints to select the appropriate formatting strategy at compile time.
Example outputs:
|
static |
Specialization for types deriving from printable.
TYPE | Printable-derived type (constrained by Printable concept) |
t | Printable object to format |
Uses the printable object's streaming operator or toString() method to generate the string representation. This ensures consistent formatting across all printable-derived types.
|
static |
Specialization for enum types with type-safe formatting.
TYPE | Enum type (constrained by EnumType concept) |
t | Enum value to format |
Extracts the underlying integer value and combines it with the type name for readable enum representation. Uses std::underlying_type_t for safe value extraction.
Pointer-specific formatting with null safety.
TYPE | Pointer type |
ptr | Pointer to format |
Safely handles null pointers by returning "nullptr" and formats valid pointers as hexadecimal addresses with @ prefix for easy identification.
Explicit conversion to C-style string.
|
inlineexplicit |
Explicit conversion to std::string.
Direct C-string access with formatting control.
enter | Append newline if true. |
Generates formatted string representation.
enter | Whether to append newline. |
Reimplemented in original::autoPtr< TYPE, DERIVED, DELETER >, original::autoPtr< asyncWrapper< TYPE >, strongPtr< asyncWrapper< TYPE >, DELETER >, DELETER >, original::autoPtr< asyncWrapper< void >, strongPtr< asyncWrapper< void >, DELETER >, DELETER >, original::autoPtr< original::filter< TYPE >, strongPtr< original::filter< TYPE >, DELETER >, DELETER >, original::autoPtr< TYPE, ownerPtr< TYPE, deleter< TYPE > >, deleter< TYPE > >, original::autoPtr< TYPE, strongPtr< TYPE, DELETER >, DELETER >, original::autoPtr< TYPE, weakPtr< TYPE, DELETER >, DELETER >, original::containerAdapter< TYPE, SERIAL, ALLOC >, original::containerAdapter< original::strongPtr< original::taskDelegator::taskBase >, chain, allocator >, original::containerAdapter< priorityTask, vector, allocator >, original::containerAdapter< TYPE, blocksList, allocator >, original::containerAdapter< TYPE, chain, allocator >, original::couple< F_TYPE, S_TYPE >, original::couple< const K_TYPE, V_TYPE >, original::iterable< TYPE >::iterAdaptor, original::iterationStream< TYPE, DERIVED >, original::iterationStream< bool, bitSet< allocator< bool > > >, original::iterationStream< hashNode *, vector< hashNode *, rebind_alloc_pointer > >, original::iterationStream< opts, chain< opts, allocator< opts > > >, original::iterationStream< original::hashTable::hashNode *, vector< original::hashTable::hashNode *, rebind_alloc_pointer > >, original::iterationStream< original::skipList::skipListNode *, vector< original::skipList::skipListNode *, allocator< original::skipList::skipListNode * > > >, original::iterationStream< original::strongPtr< original::filter< TYPE > >, chain< original::strongPtr< original::filter< TYPE > >, allocator< original::strongPtr< original::filter< TYPE > > > > >, original::iterationStream< original::strongPtr< original::taskDelegator::taskBase >, chain< original::strongPtr< original::taskDelegator::taskBase >, allocator< original::strongPtr< original::taskDelegator::taskBase > > > >, original::iterationStream< original::strongPtr< original::transform< TYPE > >, chain< original::strongPtr< original::transform< TYPE > >, allocator< original::strongPtr< original::transform< TYPE > > > > >, original::iterationStream< original::thread, array< original::thread, allocator< original::thread > > >, original::iterationStream< priorityTask, vector< priorityTask, allocator< priorityTask > > >, original::iterationStream< TYPE *, vector< TYPE *, allocator< TYPE * > > >, original::iterationStream< TYPE, array< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, blocksList< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, chain< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, forwardChain< TYPE, allocator< TYPE > > >, original::iterationStream< TYPE, vector< TYPE, allocator< TYPE > > >, original::iterationStream< underlying_type, array< underlying_type, rebind_alloc_underlying > >, original::iterator< TYPE >, original::iterator< bool >, original::iterator< const TYPE >, original::iterator< couple< const K_TYPE, V_TYPE > >, original::hashMap< K_TYPE, V_TYPE, HASH, ALLOC >, original::treeMap< K_TYPE, V_TYPE, Compare, ALLOC >, original::JMap< K_TYPE, V_TYPE, Compare, ALLOC >, original::refCntPtr< TYPE, DERIVED, DELETER >, original::refCntPtr< asyncWrapper< TYPE >, strongPtr< asyncWrapper< TYPE >, DELETER >, DELETER >, original::refCntPtr< asyncWrapper< void >, strongPtr< asyncWrapper< void >, DELETER >, DELETER >, original::refCntPtr< original::filter< TYPE >, strongPtr< original::filter< TYPE >, DELETER >, DELETER >, original::refCntPtr< TYPE, strongPtr< TYPE, DELETER >, DELETER >, original::refCntPtr< TYPE, weakPtr< TYPE, DELETER >, DELETER >, original::hashSet< TYPE, HASH, ALLOC >, original::treeSet< TYPE, Compare, ALLOC >, original::JSet< TYPE, Compare, ALLOC >, original::tuple< TYPES >, original::tuple< MUTEX *... >, original::wrapper< TYPE >, original::wrapper< couple< const K_TYPE, V_TYPE > >, original::threadBase< DERIVED >, original::threadBase< thread >, original::time::duration, original::time::point, and original::time::UTCTime.
Stream insertion operator for printable objects.
os | Output stream |
p | Printable object |
Enables direct streaming of printable objects to output streams. Uses the object's toString(false) method to generate the output without trailing newline.