libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
SourceSyntax::ResolvedArgumentVisitor< FieldCount, ArgCount > Struct Template Reference

将已解析转换解析成最终源顺序参数元信息摘要的 visitor / Visitor that resolves parsed conversions into the final source-ordered argument metadata summary More...

#include <printf_frontend_source.hpp>

Public Member Functions

consteval Error Text (size_t, size_t) const
 
consteval Error Field (const Conversion &conversion)
 

Data Fields

SourceAnalysis< FieldCount, ArgCount > & analysis
 

Detailed Description

template<size_t FieldCount, size_t ArgCount>
struct SourceSyntax::ResolvedArgumentVisitor< FieldCount, ArgCount >

将已解析转换解析成最终源顺序参数元信息摘要的 visitor / Visitor that resolves parsed conversions into the final source-ordered argument metadata summary

Template Parameters
FieldCount最终解析出的转换项数量 / Final parsed conversion count
ArgCount最终引用到的参数个数 / Final referenced argument count

Definition at line 53 of file printf_frontend_source.hpp.

Member Function Documentation

◆ Field()

template<size_t FieldCount, size_t ArgCount>
Error SourceSyntax::ResolvedArgumentVisitor< FieldCount, ArgCount >::Field ( const Conversion & conversion)
inlinenodiscardconsteval

Definition at line 59 of file printf_frontend_source.hpp.

60 {
61 auto field = FieldSelection::BuildFormatField(conversion);
62 auto info = FormatArgumentInfo{
63 .pack = field.pack,
64 .rule = field.rule,
65 };
66 auto& slot = analysis.args[conversion.arg_index];
67 if (slot.rule != FormatArgumentRule::None &&
68 (slot.rule != info.rule || slot.pack != info.pack))
69 {
70 return Error::ConflictingArgument;
71 }
72
73 slot = info;
74 return Error::None;
75 }
size_t arg_index
source argument index consumed by this field / 当前字段消耗的源参数索引

◆ Text()

template<size_t FieldCount, size_t ArgCount>
Error SourceSyntax::ResolvedArgumentVisitor< FieldCount, ArgCount >::Text ( size_t ,
size_t  ) const
inlinenodiscardconsteval

Definition at line 57 of file printf_frontend_source.hpp.

57{ return Error::None; }

Field Documentation

◆ analysis

template<size_t FieldCount, size_t ArgCount>
SourceAnalysis<FieldCount, ArgCount>& SourceSyntax::ResolvedArgumentVisitor< FieldCount, ArgCount >::analysis

Definition at line 55 of file printf_frontend_source.hpp.


The documentation for this struct was generated from the following file: