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

Расширение пакета параметров, содержащего initializer_list, до конструктора
Я намереваюсь использовать shared_ptr совсем немного в следующем проекте, поэтому (не зная о std::make_shared ) я хотел написать вариативную функцию шаблона spnew<T>(...) как shared_ptr -возвращающую замену для new . Все шло гладко, пока...
2937 просмотров

Реализация std::array-подобного контейнера с C++11 initializer_list
Единственное и очень неудобное предостережение std::array заключается в том, что он не может вывести свой размер из списка инициализаторов, как встроенные массивы C, его размер должен быть передан как шаблон. Можно ли реализовать контейнер типа...
4004 просмотров

Передайте конструктор класса через аргумент шаблона в С++
Я знаю, что функция может проходить через аргумент template , могу ли я передать конструктор класса следующим образом. Обновление: Вся причина, по которой я хочу это сделать, заключается в том, что я могу выбрать конструктор в пуле памяти и без...
2608 просмотров

#include ‹initializer_list› требуется для использования списка инициализаторов на основе диапазона для?
Окончательный стандарт С++ 11 включает положения о том, что на основе диапазона for «просто работает» для собственных массивов без необходимости включать <iterator> или любой другой заголовок. Насколько я могу судить, впервые это было...
3095 просмотров
schedule 11.06.2023

Списки инициализаторов и RHS операторов
Я не понимаю, почему списки инициализаторов нельзя использовать в RHS оператора. Рассмотреть возможность: class foo { }; struct bar { template<typename... T> bar(T const&...) { } }; foo& operator<<(foo& f, bar...
6641 просмотров
schedule 01.05.2022

Не удается скопировать std::vector‹std::function‹void ()›› с помощью юниформ-инициализации. Это правильно?
Следующий код не компилируется в GCC 4.7.2 или Clang 3.2: #include <vector> #include <functional> int main() { std::vector<std::function<void()>> a; std::vector<std::function<void()>> b{a}; }...
438 просмотров
schedule 13.09.2022

Какие примеры жадных списков инициализаторов скрываются в стандартной библиотеке?
Начиная с C++11, контейнеры стандартной библиотеки и std::string имеют конструкторы, принимающие список инициализаторов. Этот конструктор имеет приоритет над другими конструкторами (даже, как указано @JohannesSchaub-litb в комментариях, даже...
1060 просмотров

Как обнулить элементы массива, если мой компилятор не соответствует стандарту
Мой компилятор (C++Builder6) синтаксически разрешает инициализацию элемента массива (по крайней мере, нулем), но на самом деле он этого не делает. Таким образом, утверждение в приведенном ниже примере терпит неудачу в зависимости от контекста....
207 просмотров
schedule 27.07.2022

Ошибка компиляции с initializer_list при попытке использовать его для инициализации значения члена класса
Я пытаюсь сделать класс инициализируемым из списка initialization_list в списке инициализации конструктора конструктора класса. Это работает для std::map, но не для моего пользовательского класса. Я не вижу никакой разницы, кроме использования...
1940 просмотров
schedule 10.07.2022

Проблема со списком инициализаторов VC++ 2013
У меня есть следующий код, который не компилируется с vc++ 2013. Это ошибка компилятора? class Test { public: Test() : mTestBuff{ 1, 2, 3, 4 } { } private: const vector< int > mTestBuff; }; error C2661:...
448 просмотров
schedule 19.08.2022

Почему синтаксис двойных фигурных скобок не был предпочтительным для конструкторов, использующих 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 10...
5627 просмотров

Наследование C++: вызов конструктора базового класса в заголовке
Предположим, что класс Child является производным от класса Parent . Как в пятифайловой программе указать в Child.h , что я хочу вызвать конструктор Parent ? Я не думаю, что что-то вроде следующего является законным внутри заголовка:...
11758 просмотров

Список инициализаторов С++ 11 не работает, но только в списках длины 2
Я отследил неясную ошибку ведения журнала, связанную с тем, что списки инициализаторов длины 2 представляют собой особый случай! Как это возможно? Код был скомпилирован с помощью Apple LLVM версии 5.1 (clang-503.0.40) с использованием...
3132 просмотров
schedule 26.07.2023

Инициализатор члена в классе не работает с VS 2013
Я ожидал, что следующий код скомпилируется, но Visual Studio 2013 Update 2 выдает ошибку, тогда как g++ 4.7 компилирует его нормально. using std::vector; using std::string; struct Settings { vector<string> allowable = { "-t", "--type",...
1356 просмотров

foo({0, 0}): Используются ли списки инициализаторов?
Как этот код позволяет вызывать foo без указания типа Vec на строительной площадке? Является ли этот синтаксис случаем списков инициализаторов С++ 11? struct Vec { Vec(int x, int y) { } }; void foo(Vec) { } int main() { foo({0, 0});...
81 просмотров
schedule 12.01.2023

Можно ли инициализировать вектор в С++, как в Matlab?
В Matlab вы можете инициализировать векторы следующим образом: >> a = 3; >> b = 4.6; >> c = [2, 1.3, a, b] c = 2.0000 1.3000 3.0000 4.6000 Я хотел бы использовать аналогичный синтаксис в C++. В частности, у...
517 просмотров

Список переменных инициализатора
Можно ли создать initializer_list переменных, например аргументы функции (см. функцию test )? Приведенный ниже код работает, и ни Clang, ни GCC ни на что не жалуются, но я просто хотел бы убедиться, что все в порядке. #include...
600 просмотров
schedule 07.07.2023

Частные переменные-члены С++ с тем же именем, что и параметры ctor
Я знаю, что многие люди используют префикс или суффикс для имен закрытых переменных-членов. Для тех, кто этого не делает, а просто использует имя - как вы их инициализируете, если хотите иметь параметры конструктора с тем же именем?
1155 просмотров
schedule 13.06.2022

Инициализация члена союза в списке инициализаторов без сужения
В следующем коде typedef unsigned long col24; inline col24 MakeRGB24(int R, int G, int B) { return ...; } struct blitdata { union { int Flags, Stretch; col24 Luminance; }; // (other members) }; int main() { blitdata BlitData =...
606 просмотров

Должен ли конструктор инициализировать все элементы данных класса?
У меня такая ситуация: class A { public: A() : n(0) {} private: int n; int m; } В логике приложения просто нет смысла инициализировать m в конструкторе. Однако Eclipse предупреждает меня, что конструктор оставляет m...
19424 просмотров