mirror of
https://github.com/fmtlib/fmt.git
synced 2025-04-16 05:42:19 +00:00
Remove more deprecated code.
This commit is contained in:
parent
2dc108b31f
commit
39166f9aa9
@ -1093,10 +1093,6 @@ void fmt::ReportSystemError(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
void fmt::WinErrorSink::operator()(const Writer &w) const {
|
|
||||||
throw WindowsError(error_code_, w.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void fmt::ReportWinError(
|
void fmt::ReportWinError(
|
||||||
int error_code, fmt::StringRef message) FMT_NOEXCEPT(true) {
|
int error_code, fmt::StringRef message) FMT_NOEXCEPT(true) {
|
||||||
// FIXME: FormatWinErrorMessage may throw
|
// FIXME: FormatWinErrorMessage may throw
|
||||||
|
118
format.h
118
format.h
@ -119,12 +119,6 @@
|
|||||||
TypeName(const TypeName&); \
|
TypeName(const TypeName&); \
|
||||||
void operator=(const TypeName&)
|
void operator=(const TypeName&)
|
||||||
|
|
||||||
// TODO: remove
|
|
||||||
#if FMT_MSC_VER
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4521) // 'class' : multiple copy constructors specified
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace fmt {
|
namespace fmt {
|
||||||
|
|
||||||
// Fix the warning about long long on older versions of GCC
|
// Fix the warning about long long on older versions of GCC
|
||||||
@ -631,14 +625,9 @@ struct ArgInfo {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
// An argument action that does nothing.
|
|
||||||
struct NullArgAction {
|
|
||||||
void operator()() const {}
|
|
||||||
};
|
|
||||||
|
|
||||||
// A wrapper around a format argument.
|
// A wrapper around a format argument.
|
||||||
template <typename Char, typename Action = internal::NullArgAction>
|
template <typename Char>
|
||||||
class BasicArg : public Action, public internal::ArgInfo {
|
class BasicArg : public internal::ArgInfo {
|
||||||
private:
|
private:
|
||||||
// This method is private to disallow formatting of arbitrary pointers.
|
// This method is private to disallow formatting of arbitrary pointers.
|
||||||
// If you want to output a pointer cast it to const void*. Do not implement!
|
// If you want to output a pointer cast it to const void*. Do not implement!
|
||||||
@ -728,13 +717,6 @@ class BasicArg : public Action, public internal::ArgInfo {
|
|||||||
custom.value = &value;
|
custom.value = &value;
|
||||||
custom.format = &internal::FormatCustomArg<Char, T>;
|
custom.format = &internal::FormatCustomArg<Char, T>;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The destructor is declared noexcept(false) because the action may throw
|
|
||||||
// an exception.
|
|
||||||
~BasicArg() FMT_NOEXCEPT(false) {
|
|
||||||
// Invoke the action.
|
|
||||||
(*this)();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Char, typename T>
|
template <typename Char, typename T>
|
||||||
@ -1629,100 +1611,6 @@ void FormatCustomArg(void *writer, const void *arg, const FormatSpec &spec) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
\rst
|
|
||||||
The :cpp:class:`fmt::BasicFormatter` template provides operator<< for
|
|
||||||
feeding arbitrary arguments to the :cpp:func:`fmt::Format()` function.
|
|
||||||
\endrst
|
|
||||||
*/
|
|
||||||
template <typename Char>
|
|
||||||
class BasicFormatter {
|
|
||||||
private:
|
|
||||||
BasicWriter<Char> *writer_;
|
|
||||||
|
|
||||||
// An action used to ensure that formatting is performed before the
|
|
||||||
// argument is destroyed.
|
|
||||||
// Example:
|
|
||||||
//
|
|
||||||
// Format("{}") << std::string("test");
|
|
||||||
//
|
|
||||||
// Here an Arg object wraps a temporary std::string which is destroyed at
|
|
||||||
// the end of the full expression. Since the string object is constructed
|
|
||||||
// before the Arg object, it will be destroyed after, so it will be alive
|
|
||||||
// in the Arg's destructor where the action is invoked.
|
|
||||||
// Note that the string object will not necessarily be alive when the
|
|
||||||
// destructor of BasicFormatter is called. Otherwise we wouldn't need
|
|
||||||
// this class.
|
|
||||||
struct ArgAction {
|
|
||||||
mutable BasicFormatter *formatter;
|
|
||||||
|
|
||||||
ArgAction() : formatter(0) {}
|
|
||||||
|
|
||||||
void operator()() const {
|
|
||||||
if (formatter)
|
|
||||||
formatter->CompleteFormatting();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef typename internal::ArgInfo ArgInfo;
|
|
||||||
typedef internal::BasicArg<Char, ArgAction> Arg;
|
|
||||||
|
|
||||||
enum { NUM_INLINE_ARGS = 10 };
|
|
||||||
internal::Array<ArgInfo, NUM_INLINE_ARGS> args_; // Format arguments.
|
|
||||||
|
|
||||||
const Char *format_; // Format string.
|
|
||||||
|
|
||||||
// Forbid copying from a temporary as in the following example:
|
|
||||||
//
|
|
||||||
// fmt::Formatter<> f = Format("test"); // not allowed
|
|
||||||
//
|
|
||||||
// This is done because BasicFormatter objects should normally exist
|
|
||||||
// only as temporaries returned by one of the formatting functions.
|
|
||||||
FMT_DISALLOW_COPY_AND_ASSIGN(BasicFormatter);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
const Char *TakeFormatString() {
|
|
||||||
const Char *format = this->format_;
|
|
||||||
this->format_ = 0;
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CompleteFormatting() {
|
|
||||||
if (!format_) return;
|
|
||||||
const Char *format = format_;
|
|
||||||
format_ = 0;
|
|
||||||
writer_->write(format, ArgList(&args_[0], args_.size()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Constructs a formatter with a writer to be used for output and a format
|
|
||||||
// string.
|
|
||||||
BasicFormatter(BasicWriter<Char> &w, const Char *format = 0)
|
|
||||||
: writer_(&w), format_(format) {}
|
|
||||||
|
|
||||||
// Performs formatting if the format string is non-null. The format string
|
|
||||||
// can be null if its ownership has been transferred to another formatter.
|
|
||||||
~BasicFormatter() {
|
|
||||||
CompleteFormatting();
|
|
||||||
}
|
|
||||||
|
|
||||||
BasicFormatter(BasicFormatter &f) : writer_(f.writer_), format_(f.format_) {
|
|
||||||
f.format_ = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Feeds an argument to a formatter.
|
|
||||||
BasicFormatter &operator<<(const Arg &arg) {
|
|
||||||
arg.formatter = this;
|
|
||||||
args_.push_back(arg);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator BasicStringRef<Char>() {
|
|
||||||
CompleteFormatting();
|
|
||||||
return BasicStringRef<Char>(writer_->c_str(), writer_->size());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Reports a system error without throwing an exception.
|
// Reports a system error without throwing an exception.
|
||||||
// Can be used to report errors from destructors.
|
// Can be used to report errors from destructors.
|
||||||
void ReportSystemError(int error_code, StringRef message) FMT_NOEXCEPT(true);
|
void ReportSystemError(int error_code, StringRef message) FMT_NOEXCEPT(true);
|
||||||
@ -2037,8 +1925,6 @@ FMT_VARIADIC(void, printf, StringRef)
|
|||||||
// Restore warnings.
|
// Restore warnings.
|
||||||
#if FMT_GCC_VERSION >= 406
|
#if FMT_GCC_VERSION >= 406
|
||||||
# pragma GCC diagnostic pop
|
# pragma GCC diagnostic pop
|
||||||
#elif FMT_MSC_VER
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // FMT_FORMAT_H_
|
#endif // FMT_FORMAT_H_
|
||||||
|
Loading…
x
Reference in New Issue
Block a user