Описание тега initializer-list
NoneStd ::initializer_list is a special type in C++11 which is used to construct containers and other types from a list of values of the same type. May be implemented as a pair of pointers or pointer and length and its storage could be automatic, temporary, or static read-only.
2
ответа
Как были инициализированы const и ссылочные типы перед списками инициализаторов?
В Ivor Horton Beginning Visual C++ 2013 говорится о "инициализирующих списках" в C++, которые: "С членами класса, которые являются константными или ссылочными типами, у вас нет выбора в отношении того, как они инициализируются. Единственный способ -…
10 июл '16 в 23:44
3
ответа
Почему я могу использовать списки инициализаторов в правой части оператора +=, но не оператора +?
Это продолжение предыдущего вопроса о том, почему я не могу использовать инициализатор в скобках в качестве аргумента operator+, который был решен путем рассмотрения этого более раннего вопроса на эту тему. Рассмотрим следующий код C++, который вы м…
04 мар '17 в 23:01
0
ответов
Синтаксис для указания аргумента шаблона для конструктора в списке инициализатора
Каков синтаксис для указания аргумента шаблона для конструктора в списке инициализатора? Обратите внимание, что конструктор является шаблоном, а не весь класс. Например: class Member { ... }; class SpecializedMember : public Member { ... }; class C …
24 фев '16 в 16:05
0
ответов
Не удалось преобразовать '<заключенный в скобки список инициализаторов>' в 'arma::mat
Я просто копирую вставленную из документации матричной библиотеки Armadillo для непосредственной инициализации матричного объекта: #include <armadillo> using namespace arma; int main() { mat A = { {1, 3, 5}, {2, 4, 6} }; A.print(); return 0; }…
09 окт '15 в 03:35
1
ответ
Использование std::initializer_list и int в качестве параметра функции вызывает "неправильный" перевод компилятора
Вот код, я нахожу странную вещь о std::initializer_list . Я использую vs2013. Спасибо за помощь. struct TempStruct { int t1; int t2; }; int Test_A(int a, int b) { std::cout << " int a, int b" << '\n'; return 1; } TempStruct Test_A(std::i…
03 мар '14 в 05:58
2
ответа
C++ делегирование ctor и родительского ctor с аргументом
Это не похоже на работу в C++11: class B : public A { public: B(const A& a) : A(a) // parent constructor for passing the parameter , B() // delegating constructor for init of other members {}; // ... }; GCC говорит мне, что an initializer for a …
05 апр '16 в 13:33
1
ответ
Список инициализатора для массива
На данный момент у меня есть класс Permutation, который имеет это: public: int elements[N]; Permutation(std::initializer_list<size_t> data): elements(data) {}; Но когда я пытаюсь скомпилировать, я получаю это: ошибка: инициализатор массива дол…
10 дек '15 в 07:02
1
ответ
Список инициализатора C++11 + указатель на функцию вызывает головную боль
Я пытаюсь создать глобальную карту, которая будет сопоставлять строки с заводскими функциями. Это позволяет мне иметь функцию построителя, которая считывает ключ из INI-файла, а затем передает этот INI-файл с соответствующим разделом в правильную фа…
06 июн '12 в 12:14
1
ответ
Почему существуют правила перегрузки конструктора C++11 std::initializer_list?
Я не могу думать ни найти, ни найти оправдание для следующего кода: std::vector<int> a{1,2} // calls (7) std::vector<int> a(1,2) // calls (2) // constructors from http://en.cppreference.com/w/cpp/container/vector/vector vector( std::init…
02 фев '15 в 02:09
1
ответ
Как завершить конструктор, если член класса происходит из другого класса?
Например, у меня есть два класса Array и Stack. template <typename T> class Array { private: T* array; int size; ... public: Array(int size); ... } template <typename T> class Stack { private: int top; Array<T> stack; ... public: S…
03 мар '18 в 23:14
1
ответ
Итерирование различных шаблонных типов
Я застрял на этом некоторое время, и у меня закончились идеи, помощь оценена! Следующие сегменты являются примером кода, чтобы упростить. Предположим следующее: class Base; class DerivedA : public Base; class DerivedB : public Base; и это: class Man…
12 июл '15 в 14:14
2
ответа
Инициализируйте const int и объект с этим const int в одном конструкторе
У меня есть объект, который создается в файле.h, который должен быть инициализирован в конструкторе. Этому объекту передается номер COM-порта, который равен 5 в нашем текущем приложении. По этой причине я создал const int в.h файле. Изменить: я доба…
16 янв '17 в 15:39
2
ответа
Передача примитивного массива в функцию с аргументом std::initializer_list
С функцией a, принимающей std::initializer_list в качестве аргумента, как показано ниже int sumOf(std::initializer_list<int> numbers) { int sum = 0; for (auto x : numbers) { sum += x; } return sum; } Этот код работает auto sum = sumOf({ 0, 1, …
06 дек '12 в 07:20
4
ответа
Почему нельзя инициализировать член данных базового класса в списке инициализатора конструктора производного класса?
Таков код с ошибкой:"недопустимая инициализация члена:" a "не является базой или членом", что означает информация об ошибке и почему?? class A{ public: int a; }; class B:public A{ public: B(); }; B::B():a(10){ // put "a(10)" into the constructor bod…
07 авг '12 в 02:28
8
ответов
Преобразовать вектор<T> в initializer_list<T>
Каждый создает std::vector от std::initializer_listа как же наоборот? например. если вы используете std::initializer_list в качестве параметра: void someThing(std::initializer_list<int> items) { ... } Есть моменты, когда у вас есть свои вещи в…
19 сен '13 в 13:11
1
ответ
Неоднозначность std::initializer_list в Visual Studio
Я пытаюсь принять std::initializer_list в общий конструктор, например так: template<typename T> class Test{ std::vector<T> V; Test(std::initializer_list<T>& list) : V(list){} }; с помощью Test<int> test{ 1, 2, 3, 4 }; Но …
19 ноя '15 в 15:31
2
ответа
Почему синтаксис двойных фигурных скобок не предпочтителен для конструкторов, принимающих std::initializer_list
Равномерная инициализация является важной и полезной функцией C++11. Тем не менее, вы не можете просто использовать {} с тех пор std::vector<int> a(10, 0); // 10 elements of value zero std::vector<int> b({10, 0}); // 2 elements of value …
19 мар '14 в 09:29
0
ответов
Используйте оператор == и initializer-list
Например template<class Container, class T> bool operator==(Container const& c, std::initializer_list<T> const& l) { return c.size() == l.size() && equal(c.begin(), c.end(), l.begin()); } Проверьте по std::vector<int&g…
01 мар '17 в 05:39
3
ответа
Как переместить элементы initializer_list?
Допустим, у вас есть переменная типа std::vector<std::string> и вы инициализируете его списком инициализаторов: using V = std::vector<std::string>; V v = { "Hello", "little", "world", "of", "move", "semantics" }; Компилятор создаст време…
02 апр '16 в 19:22
0
ответов
Ошибка создания экземпляра при передаче initializer_list пар конструктору класса
Я не могу понять, что не так с конструктором моего класса. Когда я пытаюсь создать экземпляр объекта класса таблицы, я получаю error: no matching function for call to ‘std::map<int, int, std::less<int>, std::allocator<std::pair<const …
12 янв '14 в 06:18