Merelakan Ahli Struct dalam C
Memberi definisi struct:
<code class="c++">typedef struct A { int a; int b; char * c; } aA;</code>
kita boleh mengulanginya ahli dan mencetak nilai mereka menggunakan teknik seperti Boost Fusion/Phoenix.
Menggunakan Boost Fusion, kita boleh menyesuaikan struct untuk gabungan:
<code class="c++">#include <boost/fusion/adapted/struct.hpp> BOOST_FUSION_ADAPT_STRUCT(A, (int, a)(int, b)(std::string, c));</code>
Dan kemudian ulangi ahlinya menggunakan Boost Phoenix:
<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>
Contoh penggunaan:
<code class="c++">int main() { const A obj = { 1, 42, "The Answer To LtUaE" }; print_struct_value(obj); }</code>
Ini akan mengeluarkan nilai ahli:
1 42 The Answer To LtUaE
Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Ahli Struct dalam C Menggunakan Boost Fusion dan Phoenix?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!