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
Freigeben: 2024-10-30 16:30:02
Original
624 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Dadurch werden die Mitgliedswerte ausgegeben:

1
42
The Answer To LtUaE
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage