Beast: fatal error: boost/utility/string_view.hpp: No such file or directory

Created on 26 Jun 2017  路  6Comments  路  Source: boostorg/beast

Catch compilation error:

/home/ksergey/dev/gdax_feed_handler/deps/Beast/include/beast/core/string.hpp:11:41: fatal error: boost/utility/string_view.hpp: No such file or directory

In my system installed boost 1.58. Which version of boost is required now?

Will be good to see in Beast/CMakeLists.txt something like find_package(Boost 1.60.0 REQUIRED COMPONENTS ${BOOST_COMPONENTS})

Most helpful comment

Is the thinking behind this requirement that Beast will be released soon within Boost, so it only needs to support the Boost version it ships in and nothing earlier?

Yes. Although, maybe to get you going I could #ifdef the string_view depending on the Boost version, would you like to make that change? Its in <beast/core/string.hpp>. Something like this:

#include <boost/version.hpp>
#if BOOST_VERSION < 106400
#include <boost/utility/string_ref.hpp>
using string_view = boost::string_ref
#else
#include <boost/utility/string_view.hpp>
using string_view = boost::string_view
#endif

All 6 comments

You need a more recent Boost. I think 1.63, or 1.64.

Thank you!

Keeping this open since there's an actionable request here:

find_package(Boost 1.60.0 REQUIRED COMPONENTS ${BOOST_COMPONENTS})

I'm running Fedora 25 (the latest stable release), and it only has Boost 1.60 available in its main repositories - which means I now can't compile Beast. Boost 1.60 was only released 6 months ago.

Is the thinking behind this requirement that Beast will be released soon within Boost, so it only needs to support the Boost version it ships in and nothing earlier?

Is the thinking behind this requirement that Beast will be released soon within Boost, so it only needs to support the Boost version it ships in and nothing earlier?

Yes. Although, maybe to get you going I could #ifdef the string_view depending on the Boost version, would you like to make that change? Its in <beast/core/string.hpp>. Something like this:

#include <boost/version.hpp>
#if BOOST_VERSION < 106400
#include <boost/utility/string_ref.hpp>
using string_view = boost::string_ref
#else
#include <boost/utility/string_view.hpp>
using string_view = boost::string_view
#endif

That's fine, thank you!

Was this page helpful?
0 / 5 - 0 ratings