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

C++: конструктор и список инициализаторов в структуре/классе
Объект структуры/класса (у которого нет конструктора ) можно создать с помощью списка инициализаторов . Почему это не разрешено для структуры/класса с конструктором ? struct r { int a; }; struct s { int a; s() : a(0) {} }; r = { 1 }; // works...
3738 просмотров

Инициализация членов вне очереди - это нормально?
Из комментария к этому ответу : Члены класса инициализируются в порядке объявления. По этой логике следующий конструктор должен вызывать неопределенное поведение: struct Foo { Bar a; Bar b; Foo(Bar c) : a(b = c) { } };...
214 просмотров
schedule 19.02.2022

Порядок инициализации членов данных С++ при использовании списка инициализации
class A { private: int a; int b; int c; public: A() : b(2), a(1), c (3) { } }; В соответствии со стандартными элементами данных С++ создаются и инициализируются в том порядке, в котором они объявлены, верно? Но при использовании списка...
2606 просмотров
schedule 20.09.2022

Использование std::initializer_list в компиляторе Visual C++, ноябрь 2012 г., CTP
Я хочу использовать std::initializer_list s в Visual Studio 2012, как парень в этот пример подходит. Моя операционная система Windows 8 x64. Поэтому я недавно установил CTP Visual C++ Compiler, ноябрь 2012 г. и, как упоминалось в Microsoft,...
6706 просмотров

как перегрузить пустой std::initializer_list?
Здесь у меня есть ряд перегруженных функций, которые имеют в качестве входных данных либо вектор, либо список инициализаторов. И я хочу обработать особый случай, когда клиентский код вводит пустой initializer_list. Проблема в том, что компилятор не...
1271 просмотров
schedule 10.11.2023

Почему std :: initializer_list не является встроенным языком?
Почему std::initializer_list не встроен в базовый язык? Мне кажется, что это довольно важная особенность C ++ 11, но у него нет собственного зарезервированного ключевого слова (или чего-то подобного). Вместо этого initializer_list это...
9427 просмотров
schedule 14.04.2023

Как значения `std::initializer_list` передаются компилятором? (Или: как я могу обойти универсальную перегрузку с помощью одного?)
Продолжая свою сагу , я понял, что могу сделать перегружает мои функции доступа, используя вместо этого один параметр std::initializer_list : class array_md { //... my_type & operator []( size_type i ) { /* Lots of code...
414 просмотров

Списки инициализаторов в C++ и инициализация классов. У меня нет конструктора без аргументов, но мне все еще нужно использовать списки инициализаторов?
Хорошо, новичок в C++, я довольно хорошо знаю Java и сейчас пытаюсь изучить C++. В любом случае, вот мой простой класс. class PolyGon{ private: PointArray aArray; static int numberOfInst; public: PolyGon(Point...
492 просмотров
schedule 28.04.2023

Перегрузка ››оператора и инициализация с использованием списка инициализаторов пользовательского типа
Я пытался создать очень простой контейнер карты и подумал, что было бы неплохо иметь возможность инициализировать его так: Hash table = { "name1" >> value, "name2" >> value2, "name3" >> value3,...
805 просмотров

Разница в инициализации с фигурными скобками или без них в С++ 11
Мы можем инициализировать переменную двумя способами в C++11. Один: int abc = 7; Два: int abc {7}; В чем разница между этими двумя методами? Как компилятор обрабатывает их по-разному или как эти коды выполняются?
11159 просмотров
schedule 08.11.2022

использование std::initializer_list и int в качестве параметра функции приводит к неправильному переводу компилятора
Вот код, я нахожу странную вещь в std::initializer_list . Я использую вс2013. Спасибо за помощь. struct TempStruct { int t1; int t2; }; int Test_A(int a, int b) { std::cout << " int a, int b" << '\n'; return 1; }...
66 просмотров
schedule 01.03.2023

Вложенные списки инициализаторов hash_map
Я пытаюсь использовать std::hash_map для определения вложенного объекта. Я использую Visual Studio 2013. Проблемы начинаются, когда я пытаюсь использовать вложенные литералы инициализации. Я сократил свой подход к следующему: enum ENUM1 {...
566 просмотров

Почему порядок списка инициализаторов должен соответствовать порядку объявления членов?
Почему gcc шипит, если порядок списка инициализаторов не соответствует порядку переменных в классе? class myClass { public: int A; int B; myClass(); }; myClass::myClass() : B(1), A(2) {} приведет к: file.h:274: warning:...
8126 просмотров
schedule 05.05.2022

Можно ли инициализировать константную собственную матрицу?
У меня есть следующий класс: class Foo { public: Foo(double a, double b, double c, double d, double e) // This does not work: // : m_bar(a, b, c, d, e) { m_bar << a, b, c, d, e; } private: // How can I make this...
5267 просмотров

Использование двойных фигурных скобок, например. Foo{{список инициализаторов}} для устранения неоднозначности
Кто-то недавно продемонстрировал ужас С++ ( здесь ): cout << string(50, 'x'); // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx cout << string{50, 'x'}; // 2x std::string видит вторую строку как список инициализаторов. Мне...
187 просмотров
schedule 22.02.2023

Как построить вектор с уникальными указателями
Я пытаюсь построить вектор с unique_ptr. Но я не нахожу прямого пути. Следующий код не компилируется. Ошибка: вызов неявно удаленного конструктора копирования 'std::__1::unique_ptr >': #include <iostream> #include <memory> #include...
3985 просмотров

как назначить массив из списка инициализаторов
У меня ограниченные знания о c++ . Я попытался скомпилировать библиотеку c++ , и когда я запускаю файл make для следующего файла заголовка mcmc_dhs.h #include <algorithm> #include <map> // intrinsic shape and (reduced) shear...
54622 просмотров
schedule 26.03.2023

Вывод типа std::initializer_list
Недавно я написал очень простой класс. class C { public: void AddString(std::initializer_list<std::pair<const char*,int>> x) { //irrelevant } }; int main() { C c; c.AddString({ {"1",1},...
607 просмотров

Список инициализаторов передается как параметр функции для массива
Как мне заставить это работать: void foo(uint8_t a[]) { ... } foo({0x01, 0x02, 0x03}); Это дает мне ошибку: error: cannot convert '<brace-enclosed initializer list>' to 'uint8_t* {aka unsigned char*}' for argument '1'...
3804 просмотров
schedule 16.02.2023

Можно ли использовать список инициализаторов в фигурных скобках для контейнера контейнера?
Я понимаю, что с C ++ 11 я могу инициализировать контейнер, используя список инициализаторов, заключенный в фигурные скобки: std::map<int, char> m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}}; Возможно ли это также для контейнеров или...
2571 просмотров
schedule 22.05.2023