Вопросы по теме 'list-initialization'
Вырезание скобок в инициализации std :: array
Предположим, нужно инициализировать std::array . Ничего страшного, если использовать двойные фигурные скобки:
std::array<int, 2> x = {{0, 1}};
std::array<int, 2> x{{0, 1}};
Также можно использовать одиночные фигурные скобки в...
6563 просмотров
schedule
05.06.2024
std :: vector init с фигурными скобками дважды вызывает конструктор копирования
Почему, когда я инициализирую std :: vector с фигурными скобками
std::vector<TS> vec {ts1, ts2};
Компилятор дважды вызывает оператор конструктора копирования? С другой стороны - с push_back он вызывается только один раз.
#include...
1337 просмотров
schedule
09.09.2023
Почему вариационная функция не может использовать аргумент инициализации списка в С++ 11?
Пример кода:
#include <unordered_map>
int main() {
std::unordered_map<int, std::pair<int, int>> map;
map.emplace(1, {1, 1});
return 0;
}
Где emplace() имеет подпись, например:
template <class......
527 просмотров
schedule
11.11.2022
Является ли инициализация списка новой структуры {} с использованием специфичных для компилятора переменных?
Использование Visual Studio 2013 и компилятора C++ для написания еще одного связанного списка, и это произошло методом проб и ошибок. Это относится к Visual C++ или является частью стандарта?
Мне очень нравится этот синтаксис. Это очень чисто....
135 просмотров
schedule
11.06.2024
Перенаправленное построение на месте и инициализация списка
Под пересылаемой конструкцией на месте я понимаю std::allocator::construct и различные методы emplace, например, std::vector::emplace_back . Я просто обнаружил, что перенаправленная конструкция на месте в С++ не использует (не может?) Синтаксис...
479 просмотров
schedule
20.12.2023
Когда компилятору разрешено оптимизировать инициализацию стиля авто + скобки?
Предположим, у вас есть класс под названием Product, определенный следующим образом:
class Product
{
public:
Product(const char *name, int i);
Product(Product &&rhs);
Product(const Product &rhs);...
182 просмотров
schedule
08.02.2022
Приоритет инициализации списка от объекта того же типа
#include <iostream>
#include <initializer_list>
using namespace std;
struct CL
{
CL(){}
CL (std::initializer_list<CL>){cout<<1;}
CL (const CL&){cout<<2;}
};
int main()
{
CL cl1;
CL cl2 {cl1};...
277 просмотров
schedule
13.03.2022
Неявные преобразования C++ с инициализаторами фигурных скобок
Недавно я где-то читал (не помню где) об использовании фигурных скобок для разрешения нескольких пользовательских преобразований, но, похоже, есть разница между преобразованием с помощью конструктора и преобразованием с помощью метода преобразования,...
1081 просмотров
schedule
17.11.2022
универсальная и равномерная инициализация: от `double` до `int`
Visual Studio 2015, обновление 3. С++ 11\С++ 14.
Для int :
constexpr int ci1 {50};
constexpr int ci2 {500};
char c1 {ci1}; // OK
char c2 {ci2}; // compilation error
т.е. универсальная и равномерная инициализация может проверять...
149 просмотров
schedule
13.01.2024
прямая инициализация против инициализации прямого списка (C++)
DIRECT- VS COPY-INITIALIZATION Через этот вопрос ( Это прямая инициализация или инициализация копированием? ) Я узнал разницу между прямой инициализацией и инициализацией копированием :
direct-initialization...
4283 просмотров
schedule
16.07.2023
Почему в этом примере член не инициализируется нулем?
Это касается конкретно C ++ 11:
#include <iostream>
struct A {
A(){}
int i;
};
struct B : public A {
int j;
};
int main() {
B b = {};
std::cout << b.i << b.j << std::endl;
}
Компиляция с g ++ 8.2.1:...
1214 просмотров
schedule
25.11.2023
GCC не поддерживает исключение фигурных скобок в новом выражении
Рассмотрим эту программу:
struct S {
int m;
};
int main() {
S s_arr[1]{0};
S *s_new = new S[1]{0};
int i_arr[1][1]{0};
int (*i_new)[1] = new int[1][1]{0};
return 0;
}
Я думаю, что все четыре переменные в основной...
81 просмотров
schedule
16.07.2022
Почему синтаксис инициализатора с двумя элементами помещает один элемент в вектор строк вместо двух?
Почему я получаю один элемент в b вместо двух? В a я получаю один, как и ожидалось, а в c три элемента, как и ожидалось. Тот, у которого два значения, является каким-то особым случаем.
#include <string>
#include <vector>...
56 просмотров
schedule
05.05.2023
Предотвращает ли стандарт сужение преобразования литерала с достаточно малыми литеральными значениями в вариативных шаблонах?
Вот минимальный пример:
#include <array>
template <class... T>
constexpr std::array<unsigned char, sizeof...(T)> act(T... aArgs)
{
return std::array<unsigned char, sizeof...(T)>{aArgs...};
}
int main()
{
act(5,...
113 просмотров
schedule
02.12.2022
Могу ли я инициализировать std :: vector по списку с идеальной пересылкой элементов?
Я заметил, что инициализация aggregate list для std :: vector выполняет инициализацию копирования , когда более применимо перемещение . В то же время несколько emplace_backs делают то, что я хочу.
Я мог придумать только это несовершенное...
266 просмотров
schedule
12.03.2023