As indicated, on modern compilers you will actually need to use Phoenix V3, as Phoenix V2 relies on the old result-of protocol, which in newer versions of boost libraries just isn't always included anymore.
Additionally on some compilers (AFAIK at least clang) the BOOST_RESULT_OF_USE_DECLTYPE approach is enabled by default, which may cause the supporting libraries to omit the (more costly) TR1 result-of protocol.
The good news is, after we signaled this on the user list as a recurring stumbling block, the official decision is here:
Farewell Phoenix-2 Dec 14, 2013; 3:38am (Joel de Guzman)
(also blog post)Boost C++... After more than a decade, I finally retired Phoenix-2 from the Boost Spirit code base. I feel sad. It's like farewell to a good friend. Onwards to Phoenix-3.
That's just 7 days ago :)
So in the (near) future this problem will have been resolved.