Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengulangi Ahli Struct dalam C Menggunakan Boost Fusion dan Phoenix?

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

Linda Hamilton
Lepaskan: 2024-10-30 16:30:02
asal
643 orang telah melayarinya

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

Merelakan Ahli Struct dalam C

Memberi definisi struct:

<code class="c++">typedef struct A
{
    int a;
    int b;
    char * c;
} aA;</code>
Salin selepas log masuk

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

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

Contoh penggunaan:

<code class="c++">int main()
{
    const A obj = { 1, 42, "The Answer To LtUaE" };
    print_struct_value(obj);
}</code>
Salin selepas log masuk

Ini akan mengeluarkan nilai ahli:

1
42
The Answer To LtUaE
Salin selepas log masuk

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!

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