Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::runtime_format

      From cppreference.com
      <cpp‎ |utility‎ |format
       
       
       
      Formatting library
      Standard format specification
      Formatting functions
      (C++20)
      (C++20)
      (C++20)
      (C++20)
      Format strings
      runtime_format
      (C++26)
      Formatting concepts
      Formatter
      (C++20)
      Formatting arguments
      (C++20)(deprecated in C++26)
      Format error
       
      Defined in header<format>
      /*runtime-format-string*/<char> runtime_format(std::string_view fmt)noexcept;
      (1)(since C++26)
      /*runtime-format-string*/<wchar_t> runtime_format(std::wstring_view fmt)noexcept;
      (2)(since C++26)

      Returns an object that stores a runtime format string directly usable in user-oriented formatting functions and can be implicitly converted tostd::basic_format_string.

      Contents

      [edit]Parameters

      fmt - a string view

      [edit]Return value

      An object holding the runtime format string of the exposition-only type:

      Class templateruntime-format-string<CharT>

      template<class CharT>
      struct/*runtime-format-string*/;
      (exposition only*)

      Member objects

      The returned object contains an exposition-only non-static data memberstr of typestd::basic_string_view<CharT>.

      Constructors and assignments

      /*runtime-format-string*/(std::basic_string_view<CharT> s)noexcept;
      (1)
      /*runtime-format-string*/(const/*runtime-format-string*/&)= delete;
      (2)
      /*runtime-format-string*/& operator=(const/*runtime-format-string*/&)= delete;
      (3)
      1) Initializesstr withs.
      2) Copy constructor is explicitly deleted. The type is neither copyable nor movable.
      3) The assignment is explicitly deleted.

      [edit]Notes

      Since the return type ofruntime_format is neither copyable nor movable, an attempt of passingruntime_fmt as glvalue inhibits the construction ofstd::basic_format_string which results in program ill-formed. To constructstd::basic_format_string withruntime_format, the returned value ofruntime_format is passed directly onstd::basic_format_string as prvalue where copy elision is guaranteed.

      auto runtime_fmt= std::runtime_format("{}"); auto s0=std::format(runtime_fmt,1);// errorauto s1=std::format(std::move(runtime_fmt),1);// still errorauto s2=std::format(std::runtime_format("{}"),1);// ok
      Feature-test macroValueStdFeature
      __cpp_lib_format202311L(C++26)Runtime format strings

      [edit]Example

      Run this code
      #include <format>#include <print>#include <string>#include <string_view> int main(){std::print("Hello {}!\n","world"); std::string fmt;for(int i{}; i!=3;++i){        fmt+="{} ";// constructs the formatting stringstd::print("{} : ", fmt);std::println(std::runtime_format(fmt),"alpha",'Z',3.14,"unused");}}

      Output:

      Hello world!{}  : alpha{} {}  : alpha Z{} {} {}  : alpha Z 3.14

      [edit]See also

      (C++20)
      stores formatted representation of the arguments in a new string
      (function template)[edit]
      (C++20)
      non-template variant ofstd::format using type-erased argument representation
      (function)[edit]
      class template that performs compile-time format string checks at construction time
      (class template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/format/runtime_format&oldid=173449"

      [8]ページ先頭

      ©2009-2025 Movatter.jp