improvement

This commit is contained in:
2025-09-25 21:43:33 +03:00
parent dac3d8e43f
commit 92dab52d66
5 changed files with 61 additions and 11 deletions

View File

@@ -328,6 +328,21 @@ namespace omath
return oss.str();
}
[[nodiscard]]
std::wstring to_wstring() const noexcept
{
const auto ascii_string = to_string();
return {ascii_string.cbegin(), ascii_string.cend()};
}
[[nodiscard]]
// ReSharper disable once CppInconsistentNaming
std::u8string to_u8string() const noexcept
{
const auto ascii_string = to_string();
return {ascii_string.cbegin(), ascii_string.cend()};
}
[[nodiscard]]
bool operator==(const Mat& mat) const
{
@@ -706,9 +721,18 @@ struct std::formatter<omath::Mat<Rows, Columns, Type, StoreType>> // NOLINT(*-dc
{
return ctx.begin();
}
template<class FormatContext>
[[nodiscard]]
static auto format(const MatType& mat, std::format_context& ctx)
static auto format(const MatType& mat, FormatContext& ctx)
{
return std::format_to(ctx.out(), "{}", mat.to_string());
if constexpr (std::is_same_v<typename FormatContext::char_type, char>)
return std::format_to(ctx.out(), "{}", mat.to_string());
if constexpr (std::is_same_v<typename FormatContext::char_type, wchar_t>)
return std::format_to(ctx.out(), L"{}", mat.to_wstring());
if constexpr (std::is_same_v<typename FormatContext::char_type, char8_t>)
return std::format_to(ctx.out(), u8"{}", mat.to_u8string());
}
};