Iterieren über die Mitglieder einer Struktur in C
Gegeben eine Strukturdefinition:
<code class="c++">typedef struct A { int a; int b; char * c; } aA;</code>
wir können über sie iterieren Mitglieder und drucken ihre Werte mit Techniken wie Boost Fusion/Phoenix.
Mit Boost Fusion können wir die Struktur für die Fusion anpassen:
<code class="c++">#include <boost/fusion/adapted/struct.hpp> BOOST_FUSION_ADAPT_STRUCT(A, (int, a)(int, b)(std::string, c));</code>
Und dann mit Boost Phoenix über seine Mitglieder iterieren:
<code class="c++">#include <boost/phoenix/phoenix.hpp> using boost::phoenix::arg_names::arg1; void print_struct_value(A const& obj) { boost::fusion::for_each(obj, std::cout << arg1 << "\n"); }</code>
Ein Beispiel für die Verwendung:
<code class="c++">int main() { const A obj = { 1, 42, "The Answer To LtUaE" }; print_struct_value(obj); }</code>
Dadurch werden die Mitgliedswerte ausgegeben:
1 42 The Answer To LtUaE
Das obige ist der detaillierte Inhalt vonWie iteriere ich mit Boost Fusion und Phoenix über die Mitglieder einer Struktur in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!