compiler error : get_if<> with a variant enum ?
patrick at stwcx.xyz
Tue Oct 18 10:37:15 AEDT 2022
On Mon, Oct 17, 2022 at 08:13:20AM +0000, Francine Sauvage wrote:
> const auto* flexible_module_type = std::get_if<sdbusplus::xyz::openbmc_project::Inventory::Item::server::FlexibleModule::ModuleTypes>(&flexible_prop_map_iterator->second);
> ** I tried to replace auto with sdbusplus::xyz::openbmc_project::Inventory::Item::server::FlexibleModule::ModuleTypes>
> No success.
> Error is :
> bmcweb/1.0+git1.0-r0/recipe-sysroot/usr/include/c++/10.2.0/variant:1150:42: error: static assertion failed: T must occur exactly once in alternatives
> static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
What type is `flexible_prop_map_iterator->second`? It seems likely it
is a variant that doesn't have the enumeration type in the list of
contained types. "T must occur exactly one in alternatives" seems to be
saying that `ModuleTypes` wasn't part of the underlying variant types.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 833 bytes
Desc: not available
More information about the openbmc