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::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::taskBase >, chain< original::strongPtr< original::taskBase >, allocator< original::strongPtr< original::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< pThread >, 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 >.
|
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 |
|
|
template<typename TYPE > |
static std::string | formatString (const TYPE &t) |
| Universal value-to-string conversion.
|
|
template<Printable TYPE> |
static std::string | formatString (const TYPE &t) |
| Specialization for printable types.
|
|
template<EnumType TYPE> |
static std::string | formatString (const TYPE &t) |
| Specialization for enum types.
|
|
template<typename TYPE > |
static std::string | formatString (TYPE *const &ptr) |
| Pointer-specific formatting.
|
|
template<typename TYPE > |
static const char * | formatCString (const TYPE &t) |
| C-string cache for temporary usage.
|
|
template<typename TYPE > |
static std::string | formatEnum (const TYPE &t) |
| Enum formatting utility.
|
|
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 |
|
|
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.
- Note
- All derived classes automatically gain string conversion capabilities and can be used with std::cout, std::format, and other output mechanisms.
◆ className()
auto original::printable::className |
( |
| ) |
const |
|
inlinevirtual |
Gets the class name for type identification.
- Returns
- Class name as string.
Override in derived classes to provide accurate type names.
std::string className() const override { return "MyClass"; }
};
Base class providing polymorphic string conversion capabilities.
Definition printable.h:39
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::taskBase >, allocator< original::strongPtr< original::taskBase > > >, original::chain< original::strongPtr< original::transform< TYPE > > >, original::chain< TYPE, allocator< TYPE > >, original::containerAdapter< TYPE, SERIAL, ALLOC >, original::containerAdapter< original::strongPtr< original::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::taskBase >, chain< original::strongPtr< original::taskBase >, allocator< original::strongPtr< original::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::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::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< pThread >, original::threadBase< thread >, original::pThread, original::thread, original::time::duration, original::time::point, and original::time::UTCTime.
◆ formatCString()
template<typename TYPE >
static const char * original::printable::formatCString |
( |
const TYPE & |
t | ) |
|
|
static |
C-string cache for temporary usage.
- Template Parameters
-
- Parameters
-
- Returns
- Static C-string buffer (thread-unsafe)
- Warning
- Not thread-safe due to static buffer
- Note
- For thread-safe usage, prefer formatString() and store the result
◆ formatEnum()
template<typename TYPE >
static std::string original::printable::formatEnum |
( |
const TYPE & |
t | ) |
|
|
static |
Enum formatting utility.
- Template Parameters
-
- Parameters
-
- Returns
- String in "EnumName(value)" format
enum Color { Red };
static std::string formatEnum(const TYPE &t)
Enum formatting utility.
◆ formatString() [1/4]
std::string original::printable::formatString |
( |
const TYPE & |
t | ) |
|
|
static |
Universal value-to-string conversion.
- Template Parameters
-
- Parameters
-
- Returns
- Formatted string with type-specific handling
Automatically handles:
- Enums (via formatEnum)
- Strings (quoted)
- Chars (quoted)
- Pointers (hex address)
- Specializations for nullptr_t, bool, etc.
static std::string formatString(const TYPE &t)
Universal value-to-string conversion.
Definition printable.h:263
◆ formatString() [2/4]
template<Printable TYPE>
static std::string original::printable::formatString |
( |
const TYPE & |
t | ) |
|
|
static |
Specialization for printable types.
- Template Parameters
-
TYPE | Printable-derived type |
- Parameters
-
t | Printable object to format |
- Returns
- String representation using the object's toString() method
◆ formatString() [3/4]
template<EnumType TYPE>
static std::string original::printable::formatString |
( |
const TYPE & |
t | ) |
|
|
static |
Specialization for enum types.
- Template Parameters
-
- Parameters
-
- Returns
- String in "EnumName(value)" format
◆ formatString() [4/4]
template<typename TYPE >
static std::string original::printable::formatString |
( |
TYPE *const & |
ptr | ) |
|
|
static |
Pointer-specific formatting.
- Template Parameters
-
- Parameters
-
- Returns
- String with hex address prefixed by @
◆ operator const char *()
original::printable::operator const char * |
( |
| ) |
const |
|
inlineexplicit |
Explicit conversion to C-style string.
- Returns
- Null-terminated C-string (lifetime tied to object).
- Note
- The returned pointer is valid until the next call to toCString() or destruction of the object.
◆ operator std::string()
original::printable::operator std::string |
( |
| ) |
const |
|
inlineexplicit |
Explicit conversion to std::string.
- Returns
- String representation without newline.
◆ toCString()
auto original::printable::toCString |
( |
bool |
enter | ) |
const |
|
inline |
Direct C-string access with formatting control.
- Parameters
-
enter | Append newline if true. |
- Returns
- Managed C-string buffer.
- Note
- The returned pointer is valid until the next call to toCString() or destruction of the object.
◆ toString()
auto original::printable::toString |
( |
bool |
enter | ) |
const |
|
inlinevirtual |
Generates formatted string representation.
- Parameters
-
enter | Whether to append newline. |
- Returns
- Formatted string in "ClassName(data)" format.
MyClass obj;
std::cout << obj.toString(true);
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::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::taskBase >, chain< original::strongPtr< original::taskBase >, allocator< original::strongPtr< original::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< pThread >, original::threadBase< thread >, original::time::duration, original::time::point, and original::time::UTCTime.
◆ operator<<
std::ostream & operator<< |
( |
std::ostream & |
os, |
|
|
const printable & |
p |
|
) |
| |
|
friend |
Stream insertion operator for printable objects.
- Parameters
-
os | Output stream |
p | Printable object |
- Returns
- Modified output stream
MyClass obj;
std::cout << obj;
The documentation for this class was generated from the following file: