Itérer sur une structure en C
Lorsque vous travaillez avec des structures en C, vous pouvez rencontrer le besoin de parcourir leurs membres individuels et d'extraire leurs valeurs. Ceci peut être réalisé en utilisant diverses méthodes.
Utilisation de Boost Fusion/Phoenix
Les bibliothèques Boost Fusion et Phoenix fournissent des outils puissants pour manipuler les structures. Voici comment parcourir une structure à l'aide de ces bibliothèques :
<code class="cpp">#include <boost/fusion/adapted/struct.hpp> #include <boost/fusion/include/for_each.hpp> #include <boost/phoenix/phoenix.hpp> using boost::phoenix::arg_names::arg1;</code>
<code class="cpp">struct A { int a; int b; std::string c; };</code>
Pour adapter la structure à utiliser avec Boost Fusion :
<code class="cpp">BOOST_FUSION_ADAPT_STRUCT(A, (int,a)(int,b)(std::string,c));</code>
Dans votre fonction print_struct_value, vous pouvez parcourez maintenant la structure comme suit :
<code class="cpp">void print_struct_value(struct A a) { boost::fusion::for_each(a, std::cout << arg1 << "\n"); }</code>
Sortie :
1 42 The Answer To LtUaE
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!