set
, как и стандартные контейнеры, предоставляет конструктор, который принимает диапазон итератора для ввода в коллекцию.
Таким образом, вы не можете напрямую помещать элементы, которые вы хотите вставить в конструктор, новы можете иметь статический массив и использовать его для инициализации членов:
class myClass_t {
static int const m_init_values[];
static unsigned const m_init_size;
…
};
int const myClass_t::m_init_values[] = { 1, 2 };
unsigned const myClass_t::m_init_size =
sizeof m_init_values / sizeof m_init_values[0];
Обратите внимание, что вам нужно определить статическую константу вне класса, как показано здесь.
Теперь вы можете использовать эти значения в конструкторе:
myClass_t()
: BaseClass_t(IDD_BASEPAGE)
, mCapabilities(&m_init_values, &m_init_values + m_init_size)
, mDevice( mCapabilities )
{ }
Последнее замечание: ваше форматирование очень занимает много места и, следовательно, требует много прокрутки для чтения кода,Вы должны спросить себя, действительно ли ложные комментарии-разделители и избыточные разрывы строк действительно помогают читабельности.Обычно рекомендуется не прокручивать, чтобы прочитать один связанный код.