C에서 구조체 멤버 반복
구조체 정의가 주어지면:
<code class="c++">typedef struct A { int a; int b; char * c; } aA;</code>
Boost Fusion/Phoenix와 같은 기술을 사용하여 멤버의 값을 인쇄합니다.
Boost Fusion을 사용하면 구조체를 퓨전용으로 조정할 수 있습니다.
<code class="c++">#include <boost/fusion/adapted/struct.hpp> BOOST_FUSION_ADAPT_STRUCT(A, (int, a)(int, b)(std::string, c));</code>
그런 다음 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>
사용 예:
<code class="c++">int main() { const A obj = { 1, 42, "The Answer To LtUaE" }; print_struct_value(obj); }</code>
이렇게 하면 멤버 값이 출력됩니다.
1 42 The Answer To LtUaE
위 내용은 Boost Fusion과 Phoenix를 사용하여 C에서 구조체 멤버를 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!