mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-19 20:18:49 +00:00
Get rid of FormatterProxy.
This commit is contained in:
parent
063d0077b3
commit
4e33311597
46
format.h
46
format.h
@ -370,9 +370,6 @@ inline unsigned CountDigits(uint64_t n) {
|
|||||||
|
|
||||||
extern const char DIGITS[];
|
extern const char DIGITS[];
|
||||||
|
|
||||||
template <typename Char>
|
|
||||||
class FormatterProxy;
|
|
||||||
|
|
||||||
// Formats a decimal unsigned integer value writing into buffer.
|
// Formats a decimal unsigned integer value writing into buffer.
|
||||||
template <typename UInt, typename Char>
|
template <typename UInt, typename Char>
|
||||||
void FormatDecimal(Char *buffer, UInt value, unsigned num_digits) {
|
void FormatDecimal(Char *buffer, UInt value, unsigned num_digits) {
|
||||||
@ -1266,8 +1263,6 @@ class BasicFormatter {
|
|||||||
|
|
||||||
const Char *format_; // Format string.
|
const Char *format_; // Format string.
|
||||||
|
|
||||||
friend class internal::FormatterProxy<Char>;
|
|
||||||
|
|
||||||
// Forbid copying from a temporary as in the following example:
|
// Forbid copying from a temporary as in the following example:
|
||||||
//
|
//
|
||||||
// fmt::Formatter<> f = Format("test"); // not allowed
|
// fmt::Formatter<> f = Format("test"); // not allowed
|
||||||
@ -1313,13 +1308,9 @@ class BasicFormatter {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
operator internal::FormatterProxy<Char>() {
|
operator BasicStringRef<Char>() {
|
||||||
return internal::FormatterProxy<Char>(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
operator StringRef() {
|
|
||||||
CompleteFormatting();
|
CompleteFormatting();
|
||||||
return StringRef(writer_->c_str(), writer_->size());
|
return BasicStringRef<Char>(writer_->c_str(), writer_->size());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1331,44 +1322,27 @@ inline std::basic_string<Char> str(const BasicWriter<Char> &f) {
|
|||||||
template <typename Char>
|
template <typename Char>
|
||||||
inline const Char *c_str(const BasicWriter<Char> &f) { return f.c_str(); }
|
inline const Char *c_str(const BasicWriter<Char> &f) { return f.c_str(); }
|
||||||
|
|
||||||
namespace internal {
|
|
||||||
|
|
||||||
template <typename Char>
|
|
||||||
class FormatterProxy {
|
|
||||||
private:
|
|
||||||
BasicFormatter<Char> *formatter_;
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit FormatterProxy(BasicFormatter<Char> *f) : formatter_(f) {}
|
|
||||||
|
|
||||||
BasicWriter<Char> *Format() {
|
|
||||||
formatter_->CompleteFormatting();
|
|
||||||
return formatter_->writer_;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the content of the output buffer as an `std::string`.
|
Returns the content of the output buffer as an `std::string`.
|
||||||
*/
|
*/
|
||||||
inline std::string str(internal::FormatterProxy<char> p) {
|
inline std::string str(StringRef s) {
|
||||||
return p.Format()->str();
|
return std::string(s.c_str(), s.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns a pointer to the output buffer content with terminating null
|
Returns a pointer to the output buffer content with terminating null
|
||||||
character appended.
|
character appended.
|
||||||
*/
|
*/
|
||||||
inline const char *c_str(internal::FormatterProxy<char> p) {
|
inline const char *c_str(StringRef s) {
|
||||||
return p.Format()->c_str();
|
return s.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::wstring str(internal::FormatterProxy<wchar_t> p) {
|
inline std::wstring str(WStringRef s) {
|
||||||
return p.Format()->str();
|
return std::wstring(s.c_str(), s.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const wchar_t *c_str(internal::FormatterProxy<wchar_t> p) {
|
inline const wchar_t *c_str(WStringRef s) {
|
||||||
return p.Format()->c_str();
|
return s.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user