Heim >Backend-Entwicklung >C++ >Wie iteriere ich mit Boost Fusion und Phoenix über die Mitglieder einer Struktur in C?

Wie iteriere ich mit Boost Fusion und Phoenix über die Mitglieder einer Struktur in C?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 16:30:02619Durchsuche

How to Iterate Over a Struct's Members in C   Using Boost Fusion and Phoenix?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn