Boost.Phoenix と Boost.Spirit.Qi の併用

次のコードはコンパイルエラーになります。

[エラーコード]

#include <boost/phoenix.hpp>
#include <boost/spirit/include/qi.hpp>

int
main(){
    
    return 0;
}


を使用する場合、 の include 前に

#define BOOST_SPIRIT_USE_PHOENIX_V3 1 

を定義しておく必要があるみたいです。

[修正]

#include <boost/phoenix.hpp>

// <boost/spirit/include/qi.hpp> を include する前に定義する
#define BOOST_SPIRIT_USE_PHOENIX_V3 1
#include <boost/spirit/include/qi.hpp>

int
main(){
    
    return 0;
}

これでコンパイルが通るようになりました。

[boost]

  • ver 1.47.0 beta