mirror of
https://github.com/fmtlib/fmt.git
synced 2025-07-30 10:47:35 +02:00
Don't confuse Glib::ustring with std::string
This commit is contained in:
@ -441,7 +441,8 @@ struct is_std_string_like : std::false_type {};
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_std_string_like<T, void_t<decltype(std::declval<T>().find_first_of(
|
struct is_std_string_like<T, void_t<decltype(std::declval<T>().find_first_of(
|
||||||
typename T::value_type(), 0))>>
|
typename T::value_type(), 0))>>
|
||||||
: std::true_type {};
|
: std::is_convertible<decltype(std::declval<T>().data()),
|
||||||
|
const typename T::value_type*> {};
|
||||||
|
|
||||||
// Returns true iff the literal encoding is UTF-8.
|
// Returns true iff the literal encoding is UTF-8.
|
||||||
constexpr auto is_utf8_enabled() -> bool {
|
constexpr auto is_utf8_enabled() -> bool {
|
||||||
|
@ -2420,3 +2420,25 @@ TEST(format_test, formatter_overrides_implicit_conversion) {
|
|||||||
EXPECT_EQ(fmt::format("{}", convertible_to_int()), "x");
|
EXPECT_EQ(fmt::format("{}", convertible_to_int()), "x");
|
||||||
EXPECT_EQ(fmt::format("{}", convertible_to_cstring()), "y");
|
EXPECT_EQ(fmt::format("{}", convertible_to_cstring()), "y");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct ustring {
|
||||||
|
using value_type = unsigned;
|
||||||
|
|
||||||
|
auto find_first_of(value_type, size_t) const -> size_t;
|
||||||
|
|
||||||
|
auto data() const -> const char*;
|
||||||
|
auto size() const -> size_t;
|
||||||
|
};
|
||||||
|
|
||||||
|
FMT_BEGIN_NAMESPACE
|
||||||
|
template <> struct formatter<ustring> : formatter<std::string> {
|
||||||
|
auto format(const ustring&, format_context& ctx) const
|
||||||
|
-> decltype(ctx.out()) {
|
||||||
|
return formatter<std::string>::format("ustring", ctx);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
FMT_END_NAMESPACE
|
||||||
|
|
||||||
|
TEST(format_test, ustring) {
|
||||||
|
EXPECT_EQ(fmt::format("{}", ustring()), "ustring");
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user