diff --git a/doc/api.rst b/doc/api.rst index 24591cd2..8ae48891 100644 --- a/doc/api.rst +++ b/doc/api.rst @@ -16,6 +16,7 @@ The {fmt} library API consists of the following parts: * :ref:`fmt/chrono.h `: date and time formatting * :ref:`fmt/compile.h `: format string compilation * :ref:`fmt/color.h `: terminal color and text style +* :ref:`fmt/os.h `: system APIs * :ref:`fmt/ostream.h `: ``std::ostream`` support * :ref:`fmt/printf.h `: ``printf`` formatting @@ -57,7 +58,7 @@ participate in an overload resolution if the latter is not a string. .. _print: -.. doxygenfunction:: print(const S &format_str, Args&&... args) +.. doxygenfunction:: fmt::print(const S &format_str, Args&&... args) .. doxygenfunction:: vprint(string_view, format_args) .. doxygenfunction:: print(std::FILE *f, const S &format_str, Args&&... args) @@ -471,6 +472,14 @@ Terminal color and text style .. doxygenfunction:: bg(detail::color_type) +.. _os-api: + +System APIs +=========== + +.. doxygenclass:: fmt::ostream + :members: + .. _ostream-api: ``std::ostream`` Support diff --git a/doc/build.py b/doc/build.py index 8182ae31..109d8f9d 100755 --- a/doc/build.py +++ b/doc/build.py @@ -55,6 +55,7 @@ def build_docs(version='dev', **kwargs): ALIASES += "endrst=\endverbatim" MACRO_EXPANSION = YES PREDEFINED = _WIN32=1 \ + __linux__=1 \ FMT_USE_VARIADIC_TEMPLATES=1 \ FMT_USE_RVALUE_REFERENCES=1 \ FMT_USE_USER_DEFINED_LITERALS=1 \ diff --git a/include/fmt/os.h b/include/fmt/os.h index d1f753a7..73e421ad 100644 --- a/include/fmt/os.h +++ b/include/fmt/os.h @@ -373,7 +373,7 @@ struct ostream_params { static constexpr detail::buffer_size buffer_size; -// A fast output stream which is not thread-safe. +/** A fast output stream which is not thread-safe. */ class ostream final : private detail::buffer { private: file file_; @@ -410,6 +410,10 @@ class ostream final : private detail::buffer { file_.close(); } + /** + Formats ``args`` according to specifications in ``format_str`` and writes + the output to the file. + */ template void print(const S& format_str, Args&&... args) { format_to(detail::buffer_appender(*this), format_str, @@ -418,9 +422,19 @@ class ostream final : private detail::buffer { }; /** - Opens a file for writing. Supported parameters passed in `params`: - * ````: Output flags (``file::WRONLY | file::CREATE`` by default) + \rst + Opens a file for writing. Supported parameters passed in *params*: + + * ````: Flags passed to `open + `_ + (``file::WRONLY | file::CREATE`` by default) * ``buffer_size=``: Output buffer size + + **Example**:: + + auto out = fmt::output_file("guide.txt"); + out.print("Don't {}", "Panic"); + \endrst */ template inline ostream output_file(cstring_view path, T... params) {