Bagaimana untuk Mengulangi Struct dalam C Menggunakan Boost Fusion dan Phoenix?

Mary-Kate Olsen
Lepaskan: 2024-10-30 08:46:02
asal
578 orang telah melayarinya

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

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>
Salin selepas log masuk
<code class="cpp">struct A
{
    int a;
    int b;
    std::string c;
};</code>
Salin selepas log masuk

Untuk menyesuaikan struct untuk digunakan dengan Boost Fusion:

<code class="cpp">BOOST_FUSION_ADAPT_STRUCT(A, (int,a)(int,b)(std::string,c));</code>
Salin selepas log masuk

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>
Salin selepas log masuk

Output:

1
42
The Answer To LtUaE
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!