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:49