12#include <boost/format.hpp>
13#include <boost/lexical_cast.hpp>
17template <
typename T,
typename Range>
22 std::string possible_values =
"";
24 for (
const T& v : range) {
26 possible_values +=
", ";
27 possible_values += boost::lexical_cast<std::string>(v);
30 str(boost::format(
"assertion failed:\n"
31 " %s is not a valid %s.\n"
32 " possible values are: [%s].\n")
33 % boost::lexical_cast<std::string>(value) % what % possible_values));
#define UHD_INLINE
Definition config.h:65
Definition build_info.hpp:12
UHD_INLINE bool has(const Range &range, const T &value)
Definition algorithm.hpp:68
void assert_has(const Range &range, const T &value, const std::string &what="unknown")
Definition assert_has.ipp:18
Definition exception.hpp:48