我的问题与我的另一个问题紧密相连。我一直在努力初始化包含联合结构成员的数组。 假设我在 C++11 中有以下声明
enum class FilterType { kLowPass, kAverage };
enum class FilterLowPassConfig {
k1kHzLowPass = 0,
k10kHzLowPass = 1,
k20kHzLowPass = 2,
k40kHzLowPass = 3
};
enum class FilterAverageConfig {
kWindowSize256 = 0,
kWindowSize128 = 1,
kWindowSize64 = 2,
kWindowSize32 = 3
};
union FilterConfig {
FilterLowPassConfig low_pass_config;
FilterAverageConfig average_config;
};
struct FilterSelect
{
FilterType filter_type;
FilterConfig filter_config;
};
现在我定义一个数组:
FilterSelect filter_select[2];
我该怎么做才能使用大括号括起来的初始化列表来初始化数组
filter_select
?我一直在寻找没有 boost::variant
和 boost::variant2
的解决方案。
您可以使用大括号括起来的列表
FilterSelect filter_select[2] = {
{FilterType::kLowPass, {.low_pass_config = FilterLowPassConfig::k10kHzLowPass}},
{FilterType::kAverage, {.average_config = FilterAverageConfig::kWindowSize64}}
};