25#include <boost/multiprecision/cpp_int.hpp>
26using namespace boost::multiprecision;
51 using namespace std::string_literals;
52 using namespace std::string_view_literals;
109 namespace string_literals
113 using namespace string_literals;
123 using neolib::operator<<;
124 using neolib::operator>>;
130 template <
typename CharT,
typename Traits,
typename Allocator>
131 inline const string to_string(
const std::basic_string<CharT, Traits, Allocator>& aString)
133 static_assert(
sizeof(CharT) ==
sizeof(
char));
134 return string{
reinterpret_cast<const char*
>(aString.c_str()), aString.size() };
138 template <
typename CharT, std::
size_t Size>
139 inline const string to_string(
const CharT (&aString)[Size])
141 static_assert(
sizeof(CharT) ==
sizeof(
char));
142 auto const correctedSize = (aString[Size - 1] ==
'\0' ? Size - 1 : Size);
143 return correctedSize > 0 ?
string{
reinterpret_cast<const char*
>(&aString[0]), correctedSize } :
string{};
149 std::runtime_error{
"neoGFX: Functionality not yet implemented" + (aDetail.empty() ?
"" :
" (" + aDetail +
")") } {}
160 extern bool renderGeometryText;
neolib::logger::logger< 9999 > logger
std::string to_string(note const &aNote)
string const empty_string
typename detail::abstract_type< T >::type abstract_t
std::string to_string(const i_version &aVersion)
const abstract_t< T > & to_abstract(const T &aArgument)
basic_enum< Enum > enum_t
ref_ptr< T > dynamic_pointer_cast(ref_ptr< U > const &aOther) noexcept
ref_ptr< ConcreteType > make_ref(Args &&... args)
to_const_reference_t< T > to_const(T &&object)
i_basic_enum< std::underlying_type_t< T > > i_enum_t
ref_ptr< T > const_pointer_cast(ref_ptr< U > const &aOther) noexcept
ref_ptr< T > static_pointer_cast(ref_ptr< U > const &aOther) noexcept
StringT enum_to_string(Enum aEnumerator, bool aMustEnumerate=false)
void clear_cache(cache< T > &aCachedVariable)
T any_cast(const any &operand)
ref_ptr< T > reinterpret_pointer_cast(ref_ptr< U > const &aOther) noexcept
not_yet_implemented(std::string const &aDetail={})