Move StringValue to Arg & simplify StringTraits.

This commit is contained in:
Victor Zverovich
2014-07-14 08:04:17 -07:00
parent 8a66bb89b2
commit e3a2ac8725
3 changed files with 23 additions and 23 deletions
+9 -16
View File
@@ -340,12 +340,6 @@ void Array<T, SIZE>::append(const T *begin, const T *end) {
size_ += num_elements;
}
template <typename Char>
struct StringValue {
const Char *value;
std::size_t size;
};
template <typename Char>
class BasicCharTraits {
public:
@@ -373,11 +367,6 @@ public:
static char convert(char value) { return value; }
static StringValue<char> convert(StringValue<wchar_t>) {
StringValue<char> s = {"", 0};
return s;
}
template <typename T>
static int FormatFloat(char *buffer, std::size_t size,
const char *format, unsigned width, int precision, T value);
@@ -391,8 +380,6 @@ class CharTraits<wchar_t> : public BasicCharTraits<wchar_t> {
static wchar_t convert(char value) { return value; }
static wchar_t convert(wchar_t value) { return value; }
static StringValue<wchar_t> convert(StringValue<wchar_t> s) { return s; }
static const wchar_t *check(const wchar_t *s) { return s; }
template <typename T>
@@ -600,6 +587,12 @@ struct Arg {
};
Type type;
template <typename Char>
struct StringValue {
const Char *value;
std::size_t size;
};
typedef void (*FormatFunc)(
void *formatter, const void *arg, const void *format_str);
@@ -773,10 +766,10 @@ class ArgVisitor {
Result visit_char(int) {
return FMT_DISPATCH(visit_unhandled_arg());
}
Result visit_string(StringValue<char>) {
Result visit_string(Arg::StringValue<char>) {
return FMT_DISPATCH(visit_unhandled_arg());
}
Result visit_wstring(StringValue<wchar_t>) {
Result visit_wstring(Arg::StringValue<wchar_t>) {
return FMT_DISPATCH(visit_unhandled_arg());
}
Result visit_pointer(const void *) {
@@ -1347,7 +1340,7 @@ class BasicWriter {
template <typename StringChar>
void write_str(
const internal::StringValue<StringChar> &str, const FormatSpec &spec);
const internal::Arg::StringValue<StringChar> &str, const FormatSpec &spec);
// This method is private to disallow writing a wide string to a
// char stream and vice versa. If you want to print a wide string