19 return m_buffer.data();
24 const size_t available = m_buffer.size() - 1 - m_len;
25 const size_t numCharsToAppend = strnlen(message, available);
26 appendImpl(std::string_view(message, numCharsToAppend));
31 const size_t available = m_buffer.size() - 1 - m_len;
32 const size_t numCharsToAppend = std::min(messageLen, available);
33 appendImpl(std::string_view(message, numCharsToAppend));
36 void CppRuntimeException::appendImpl(std::string_view message)
38 if (message.size() > 0)
40 (void)std::copy(message.begin(), message.end(), m_buffer.begin() + m_len);
41 m_len += message.size();
43 m_buffer.at(m_len) =
'\0';
54 return exception << (value ?
"true" :
"false");
59 std::array<char, 24> integerPartBuffer = {};
60 std::array<char, 24> floatingPartBuffer = {};
61 const char* integerPartString =
nullptr;
62 const char* floatingPartString =
nullptr;
63 convertFloatToString(integerPartBuffer, floatingPartBuffer, value, integerPartString, floatingPartString);
65 if (floatingPartString !=
nullptr)
67 result = result <<
"." << floatingPartString;
75 return exception << (static_cast<float>(value));
80 exception.
append(value.data(), value.size());
~CppRuntimeException() override
const char * what() const noexcept override
CppRuntimeException(const char *message="")
void append(const char *message)
CppRuntimeException & operator<<(CppRuntimeException &exception, const BasicBitBuffer< ALLOC > &bitBuffer)
void convertFloatToString(std::array< char, 24 > &integerPartBuffer, std::array< char, 24 > &floatingPartBuffer, float value, const char *&integerPartString, const char *&floatingPartString)