Вопросы по теме 'initializer-list'

Заключенный в фигурные скобки конструктор списка инициализаторов
У меня есть класс Phenotype со следующим конструктором: Phenotype(uint8 init[NUM_ITEMS]); Я могу создать такой фенотип: uint8 data[] = {0,0,0,0,0}; Phenotype p(data); Но я получаю сообщение об ошибке, когда пытаюсь создать такой:...
79635 просмотров
schedule 10.07.2022

std::initializer_list‹› и ссылочный параметр
Я новичок в использовании списков инициализаторов, и мне интересно, работают ли они аналогично другим контейнерам stl. Под этим я подразумеваю, копируют ли они значения? То, что я пытаюсь сделать, это простая функция min(), подобная этой:...
2156 просмотров
schedule 15.10.2022

Порядок при инициализации в C, C++
Рассмотрим следующие инициализации: /* C, C++ */ int a[] = { f(), g() }; struct { int x, y } foo = { f(), g() }; /* C++ */ struct goo { goo(int x, int y); }; goo b = { f(), g() }; goo c { f(), g() }; /* C++11 */ goo d ( f(), g() );...
846 просмотров
schedule 07.11.2023

Почему инициализация ={} не работает для кортежа?
Для меня pair — это всего лишь частный случай tuple , но меня удивляет следующее: pair<int, int> p1(1, 2); // ok tuple<int, int> t1(1, 2); // ok pair<int, int> p2={1, 2}; // ok tuple<int, int> t2={1, 2}; // compile...
7079 просмотров

Передача std::initializer_list в качестве аргумента шаблона, отличного от типа
У меня проблема со следующим кодом: #include <deque> #include <initializer_list> #include <string> struct EnumItem { inline operator int() const { return id; } std::string name; int id; }; template...
333 просмотров
schedule 28.01.2024

Функция шаблона получает пакет аргументов и список инициализаторов
У меня есть несколько шаблонных классов, подобных приведенным ниже. template<typename T> class A{ public: A(T a0, T a1, T a2):a0_(a0),a1_(a1),a2_(a2){} private: T a0_,a1_,a2_; }; template<typename T> class B{ public:...
317 просмотров

Эффективный способ предоставления конструктора списка инициализатора
Давайте скажем, класс Base со следующими resorces: struct Base { int m_int; bool m_flag; float m_float; Base() = delete; // just to see that it didn't call Base(int a, bool b, float c): m_int(a), m_flag(b), m_float(c) {} };...
389 просмотров

Невозможно объединить список инициализаторов с наследованием
У меня есть код, в котором я хотел бы, чтобы экземпляр класса мог инициализировать переменную в своем инициализаторе, а также вызывать в своем списке инициализаторов конструктор родительского класса. Этот конструктор родительского класса будет...
36 просмотров
schedule 30.01.2024

Как протестировать ctor, принимающий std::initializer_list с известной длиной во время компиляции?
В целях тестирования я хочу вызвать конструктор с помощью простого std::initializer_list . Скажем, значение не имеет значения, а длина, значение и тип известны во время компиляции, например { 42, 42, 42,... N-times } . Поскольку его конструктор...
53 просмотров
schedule 02.12.2023

Почему назначение члена не выполняется в списке инициализаторов, но не в конструкторе?
Я пишу код, который следует схемам зависимости членов, обсуждаемым в: Устранение ошибок сборки из-за круговой зависимости между классами В простейшей форме заголовки кода выглядят так: A.h class B; class A{ public: A(); void send(int...
48 просмотров
schedule 10.03.2024