Difference between revisions of "cpp/utility/format/basic format args"
m (→See also) |
Andreas Krug (Talk | contribs) m (fmt, {{c}}) |
||
Line 3: | Line 3: | ||
{{dcl begin}} | {{dcl begin}} | ||
− | {{dcl header | format}} | + | {{dcl header|format}} |
− | {{dcl | num=1 | since=c++20 |1= | + | {{dcl|num=1|since=c++20|1= |
template< class Context > | template< class Context > | ||
class basic_format_args; | class basic_format_args; | ||
}} | }} | ||
− | {{dcl | num=2 | since=c++20 |1= | + | {{dcl|num=2|since=c++20|1= |
using format_args = basic_format_args<std::format_context>; | using format_args = basic_format_args<std::format_context>; | ||
}} | }} | ||
− | {{dcl | num=3 | since=c++20 |1= | + | {{dcl|num=3|since=c++20|1= |
using wformat_args = basic_format_args<std::wformat_context>; | using wformat_args = basic_format_args<std::wformat_context>; | ||
}} | }} | ||
Line 20: | Line 20: | ||
===Member functions=== | ===Member functions=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc mem ctor | nolink=true | constructs a {{tt|basic_format_args}} object}} | + | {{dsc mem ctor|nolink=true|constructs a {{tt|basic_format_args}} object}} |
− | {{dsc mem fun | get | nolink=true | returns formatting argument at the given index}} | + | {{dsc mem fun|get|nolink=true|returns formatting argument at the given index}} |
{{dsc end}} | {{dsc end}} | ||
− | {{member | {{small|std::basic_format_args::}}basic_format_args |2= | + | {{member|{{small|std::basic_format_args::}}basic_format_args|2= |
{{dcl begin}} | {{dcl begin}} | ||
− | {{dcl | num=1 |1= | + | {{dcl|num=1|1= |
basic_format_args() noexcept; | basic_format_args() noexcept; | ||
}} | }} | ||
− | {{dcl | num=2 |1= | + | {{dcl|num=2|1= |
template< class... Args > | template< class... Args > | ||
basic_format_args( const /*format-arg-store*/<Context, Args...>& store ) noexcept; | basic_format_args( const /*format-arg-store*/<Context, Args...>& store ) noexcept; | ||
Line 38: | Line 38: | ||
@2@ Constructs a {{tt|basic_format_args}} object from the result of a call to {{lc|std::make_format_args}} or {{lc|std::make_wformat_args}}. | @2@ Constructs a {{tt|basic_format_args}} object from the result of a call to {{lc|std::make_format_args}} or {{lc|std::make_wformat_args}}. | ||
<!----> | <!----> | ||
− | {{tt|std::basic_format_args}} has reference semantics. It is the programmer's responsibility to ensure that {{ | + | {{tt|std::basic_format_args}} has reference semantics. It is the programmer's responsibility to ensure that {{c|*this}} does not outlive {{c|store}} (which, in turn, should not outlive the arguments to {{lc|std::make_format_args}} or {{lc|std::make_wformat_args}}). |
}} | }} | ||
− | {{member | {{small|std::basic_format_args::}}get |2= | + | {{member|{{small|std::basic_format_args::}}get|2= |
− | {{ddcl | 1= | + | {{ddcl|1= |
std::basic_format_arg<Context> get( std::size_t i ) const noexcept; | std::basic_format_arg<Context> get( std::size_t i ) const noexcept; | ||
}} | }} | ||
− | Returns a {{lc|std::basic_format_arg}} holding the {{ | + | Returns a {{lc|std::basic_format_arg}} holding the {{c|i}}-th argument in {{tt|args}}, where {{tt|args}} is the parameter pack passed to {{lc|std::make_format_args}} or {{lc|std::make_wformat_args}}. |
− | If there's no such formatting argument (i.e. {{ | + | If there's no such formatting argument (i.e. {{c|*this}} was default-constructed or {{c|i}} is not less than the number of formatting arguments), returns a default-constructed {{lc|std::basic_format_arg}} (holding a {{lc|std::monostate}} object). |
}} | }} | ||
Line 56: | Line 56: | ||
===Example=== | ===Example=== | ||
− | {{example | + | {{example}} |
− | + | ||
− | + | ||
− | }} | + | |
===Defect reports=== | ===Defect reports=== | ||
Line 69: | Line 66: | ||
===See also=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/utility/format/dsc basic_format_arg}} | + | {{dsc inc|cpp/utility/format/dsc basic_format_arg}} |
{{dsc end}} | {{dsc end}} | ||
{{langlinks|es|ja|ru|zh}} | {{langlinks|es|ja|ru|zh}} |
Revision as of 08:06, 12 October 2023
Defined in header <format>
|
||
template< class Context > class basic_format_args; |
(1) | (since C++20) |
using format_args = basic_format_args<std::format_context>; |
(2) | (since C++20) |
using wformat_args = basic_format_args<std::wformat_context>; |
(3) | (since C++20) |
Provides access to formatting arguments.
Contents |
Member functions
(constructor) |
constructs a basic_format_args object (public member function) |
get |
returns formatting argument at the given index (public member function) |
std::basic_format_args::basic_format_args
basic_format_args() noexcept; |
(1) | |
template< class... Args > basic_format_args( const /*format-arg-store*/<Context, Args...>& store ) noexcept; |
(2) | |
basic_format_args
object that does not hold any formatting argument.basic_format_args
object from the result of a call to std::make_format_args or std::make_wformat_args.
std::basic_format_args
has reference semantics. It is the programmer's responsibility to ensure that *this does not outlive store (which, in turn, should not outlive the arguments to std::make_format_args or std::make_wformat_args).
std::basic_format_args::get
std::basic_format_arg<Context> get( std::size_t i ) const noexcept; |
||
Returns a std::basic_format_arg holding the i-th argument in args
, where args
is the parameter pack passed to std::make_format_args or std::make_wformat_args.
If there's no such formatting argument (i.e. *this was default-constructed or i is not less than the number of formatting arguments), returns a default-constructed std::basic_format_arg (holding a std::monostate object).
Deduction guides
template< class Context, class... Args > basic_format_args( /*format-arg-store*/<Context, Args...> ) -> basic_format_args<Context>; |
(since C++20) | |
Example
This section is incomplete Reason: no example |
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
P2216R3 | C++20 | format_args_t was provided due to overparameterization of vformat_to
|
removed |
LWG3810 | C++20 | basic_format_args has no deduction guide
|
added |
See also
(C++20) |
class template that provides access to a formatting argument for user-defined formatters (class template) |