3

私はフュージョンに不慣れです。フュージョンマップ内にフュージョンマップをネストすることは可能ですか?以下の例でBに解決するコードを書くにはどうすればよいですか?

#include <boost/asio.hpp>
#include <boost/fusion/container/map.hpp>
#include <boost/unordered_map.hpp>

struct A 
{
};

struct B
{
};

int main()
{
    boost::fusion::map<
        boost::fusion::pair<
            A, 
            boost::fusion::map<boost::fusion::pair<unsigned int, B>>
        >
    > map_;

    B b = boost::fusion::at_key<unsigned int>((boost::fusion::at_key<A>(map_)); //compile error
}
4

1 に答える 1

3

構文エラー(余分な括弧)を除けば、いくつか#includeのsが欠落しているだけです。これは私にとってはうまくいきます:

#include <boost/fusion/include/at_key.hpp>
#include <boost/fusion/include/map.hpp>
#include <boost/fusion/include/pair.hpp>

struct A { };
struct B { };

int main()
{
    boost::fusion::map<
        boost::fusion::pair<
            A, 
            boost::fusion::map<boost::fusion::pair<unsigned int, B>>
        >
    > map_;

    B b = boost::fusion::at_key<unsigned int>(boost::fusion::at_key<A>(map_));
}

Online Demo

于 2012-11-02T02:53:38.907 に答える