Menyalurkan Struct dalam C
Apabila bekerja dengan struct dalam C , anda mungkin menghadapi keperluan untuk mengulangi ahli individu mereka dan mengekstrak nilai mereka. Ini boleh dicapai menggunakan pelbagai kaedah.
Menggunakan Boost Fusion/Phoenix
Pustaka Boost Fusion dan Phoenix menyediakan alatan berkuasa untuk memanipulasi struct. Begini cara anda boleh mengulangi struct menggunakan perpustakaan ini:
<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>
Untuk menyesuaikan struct untuk digunakan dengan Boost Fusion:
<code class="cpp">BOOST_FUSION_ADAPT_STRUCT(A, (int,a)(int,b)(std::string,c));</code>
Dalam fungsi print_struct_value anda, anda boleh sekarang ulangi struct seperti berikut:
<code class="cpp">void print_struct_value(struct A a) { boost::fusion::for_each(a, std::cout << arg1 << "\n"); }</code>
Output:
1 42 The Answer To LtUaE
Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Struct dalam C Menggunakan Boost Fusion dan Phoenix?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!