Вопросы по теме '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 просмотров
schedule
07.11.2022
Передача 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 просмотров
schedule
15.09.2022
Эффективный способ предоставления конструктора списка инициализатора
Давайте скажем, класс 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 просмотров
schedule
24.10.2022
Невозможно объединить список инициализаторов с наследованием
У меня есть код, в котором я хотел бы, чтобы экземпляр класса мог инициализировать переменную в своем инициализаторе, а также вызывать в своем списке инициализаторов конструктор родительского класса. Этот конструктор родительского класса будет...
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