BOOST_FUSION_ADAPT_STRUCT を使って、構造体の変数をイテレータを使ってアクセス順を変える2020年03月08日 12時17分06秒

BOOST_FUSION_ADAPT_STRUCT を使って、構造体の変数をイテレータを使ってアクセスした。BOOST_FUSION_ADAPT_STRUCT 内に並べる順序を変えると、イテレータとしての順序も変わる。
#include <string>
#include <iostream>
#include <boost/fusion/algorithm.hpp>

#include <boost/fusion/include/adapt_struct.hpp>

struct person
{
    std::string name_;
    int age_;

    person( const std::string& name, int age )
        : name_( name )
        , age_( age )
    {
    }
};
BOOST_FUSION_ADAPT_STRUCT(
    person
    , ( int, age_ )
    , ( std::string, name_ )
)

struct print
{
    template< typename T >
    void operator()( const T& t ) const
    {
        std::cout << t << std::endl;
    }
};

int main()
{
    person p( "Boost User", 10 );
    boost::fusion::for_each( p, print() );
}
該当部分のコードは短いが、全文載せた。
% c++ -I /usr/local/include/ boost_fucsion_adapt_struct.cpp
% ./a.out 
10
Boost User
そして、実行結果。

前回次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/03/08/9221948/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。