ORIGINAL
Loading...
Searching...
No Matches
original::printable Class Referenceabstract

Base class providing polymorphic string conversion capabilities. More...

#include <printable.h>

Inheritance diagram for original::printable:
Inheritance graph
Collaboration diagram for original::printable:
Collaboration graph

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.
 
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
 

Friends

std::ostream & operator<< (std::ostream &os, const printable &p)
 Stream insertion operator for printable objects.
 

Detailed Description

Base class providing polymorphic string conversion capabilities.

Inherit from this class to enable automatic string representation for output streams and C-style string access. Provides extensible formatting through template specializations.

Member Function Documentation

◆ className()

auto original::printable::className ( ) const
inlinenodiscardvirtual

Gets the class name for type identification.

Returns
Class name as string.

Override in derived classes to provide accurate type names.

class MyClass : public printable {
std::string className() const override { return "MyClass"; }
};
Base class providing polymorphic string conversion capabilities.
Definition printable.h:25
virtual std::string className() const
Gets the class name for type identification.
Definition printable.h:164

Reimplemented in original::array< TYPE, ALLOC >, original::array< TYPE, ALLOC >::Iterator, original::array< underlying_type, rebind_alloc_underlying >, original::autoPtr< TYPE, DERIVED, 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 >, original::bitSet< ALLOC >::Iterator, original::blocksList< TYPE, ALLOC >, original::blocksList< TYPE, ALLOC >::Iterator, original::blocksList< TYPE, allocator< TYPE > >, original::chain< TYPE, ALLOC >, original::chain< TYPE, ALLOC >::Iterator, original::chain< opts >, original::chain< original::strongPtr< original::filter< TYPE > > >, original::chain< original::strongPtr< original::transform< TYPE > > >, original::chain< TYPE, allocator< TYPE > >, original::containerAdapter< TYPE, SERIAL, ALLOC >, original::containerAdapter< TYPE, blocksList, allocator >, original::containerAdapter< TYPE, chain, allocator >, original::couple< F_TYPE, S_TYPE >, original::deque< TYPE, SERIAL, ALLOC >, original::forwardChain< TYPE, ALLOC >, original::forwardChain< TYPE, ALLOC >::Iterator, original::iterable< TYPE >::iterAdaptor, original::iterationStream< TYPE, DERIVED >, original::iterationStream< bool, bitSet< allocator< bool > > >, original::iterationStream< opts, chain< opts, allocator< opts > > >, 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::ownerPtr< TYPE, DELETER >, original::prique< TYPE, Callback, SERIAL, ALLOC >, original::queue< TYPE, SERIAL, ALLOC >, original::randomAccessIterator< TYPE, ALLOC >, original::refCntPtr< TYPE, DERIVED, DELETER >, original::refCntPtr< TYPE, strongPtr< TYPE, DELETER >, DELETER >, original::refCntPtr< TYPE, weakPtr< TYPE, DELETER >, DELETER >, original::stack< TYPE, SERIAL, ALLOC >, original::stepIterator< TYPE >, original::strongPtr< TYPE, DELETER >, original::strongPtr< original::filter< TYPE > >, original::tuple< TYPES >, original::vector< TYPE, ALLOC >, original::vector< TYPE, ALLOC >::Iterator, original::vector< TYPE * >, original::weakPtr< TYPE, DELETER >, and original::wrapper< TYPE >.

◆ formatCString()

template<typename TYPE>
static const char * original::printable::formatCString ( const TYPE & t)
static

C-string cache for temporary usage.

Template Parameters
TYPEInput type
Parameters
tValue to format
Returns
Static C-string buffer (thread-unsafe)
Warning
Not thread-safe due to static buffer

◆ formatEnum()

template<typename TYPE>
static std::string original::printable::formatEnum ( const TYPE & t)
static

Enum formatting utility.

Template Parameters
TYPEEnum type
Parameters
tEnum value
Returns
String in "EnumName(value)" format
enum Color { Red };
printable::formatEnum(Color::Red); // "Color(0)"
static std::string formatEnum(const TYPE &t)
Enum formatting utility.

◆ formatString() [1/2]

template<typename TYPE>
static std::string original::printable::formatString ( const TYPE & t)
static

Universal value-to-string conversion.

Template Parameters
TYPEInput value type
Parameters
tValue to format
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.
printable::formatString("hello"); // "\"hello\""
static std::string formatString(const TYPE &t)
Universal value-to-string conversion.

◆ formatString() [2/2]

template<typename TYPE>
static std::string original::printable::formatString ( TYPE *const & ptr)
static

Pointer-specific formatting.

Template Parameters
TYPEPointer type
Parameters
ptrPointer to format
Returns
String with hex address prefixed by @
int* p = nullptr;

◆ 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).

◆ 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
inlinenodiscard

Direct C-string access with formatting control.

Parameters
enterAppend newline if true.
Returns
Managed C-string buffer.

◆ toString()

auto original::printable::toString ( bool enter) const
inlinenodiscardvirtual

Generates formatted string representation.

Parameters
enterWhether to append newline.
Returns
Formatted string in "ClassName(data)" format.
Myclass : public printable{};
MyClass obj;
std::cout << obj.toString(true); // Outputs "printable(@0x7ffd) \n"
virtual std::string toString(bool enter) const
Generates formatted string representation.
Definition printable.h:169

Reimplemented in original::autoPtr< TYPE, DERIVED, 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< TYPE, blocksList, allocator >, original::containerAdapter< TYPE, chain, allocator >, original::couple< F_TYPE, S_TYPE >, original::iterable< TYPE >::iterAdaptor, original::iterationStream< TYPE, DERIVED >, original::iterationStream< bool, bitSet< allocator< bool > > >, original::iterationStream< opts, chain< opts, allocator< opts > > >, 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::refCntPtr< TYPE, DERIVED, DELETER >, original::refCntPtr< TYPE, strongPtr< TYPE, DELETER >, DELETER >, original::refCntPtr< TYPE, weakPtr< TYPE, DELETER >, DELETER >, original::tuple< TYPES >, and original::wrapper< TYPE >.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream & os,
const printable & p )
friend

Stream insertion operator for printable objects.

Parameters
osOutput stream
pPrintable object
Returns
Modified output stream
Myclass : public printable{};
MyClass obj;
std::cout << obj; // Outputs "printable(@0x7ffd) \n"

The documentation for this class was generated from the following file: