У меня BOOST_SCOPED_ENUM
как указано ниже
#ifndef DOXYGEN_NO_DETAIL
namespace detail { namespace wkb
{
BOOST_SCOPED_ENUM_START(byte_order)
{
xdr = 0, // wkbXDR, bit-endian
ndr = 1, // wkbNDR, little-endian
unknown = 2 // not defined by OGC
};
BOOST_SCOPED_ENUM_END
}} // namespace detail::wkb
#endif // DOXYGEN_NO_IMPL
}} // namespace boost::geometry
#endif // BOOST_GEOMETRY_EXTENSIONS_GIS_IO_WKB_DETAIL_OGC_HPP
Я хотел использовать его с операндом >
, так как это перечисление является целым числом.Вот мой код
boost::uint8_t value;
if (value_parser<boost::uint8_t>::parse(it, end, value, byte_order::unknown))
{
if (byte_order::unknown > value)
{
order = (0 == value ? byte_order::xdr : byte_order::ndr);
return true;
}
}
Но я продолжаю получать эту ошибку при компиляции
error: no match for ‘operator>’ (operand types are ‘boost::geometry::detail::wkb::byte_order’ and ‘uint8_t {aka unsigned char}’)
if (byte_order::unknown > value)
~~~~~~~~~~~~~~~~~~~~^~~~~~~
Кажется, мне нужно привести объект, но я не смог найти способ его привести.есть ли способ разыграть это enum
на uint8_t
?Большое спасибо