Вопросы по теме 'initializer-list'
C++: конструктор и список инициализаторов в структуре/классе
Объект структуры/класса (у которого нет конструктора ) можно создать с помощью списка инициализаторов . Почему это не разрешено для структуры/класса с конструктором ?
struct r { int a; };
struct s { int a; s() : a(0) {} };
r = { 1 }; // works...
3738 просмотров
schedule
20.07.2022
Инициализация членов вне очереди - это нормально?
Из комментария к этому ответу :
Члены класса инициализируются в порядке объявления. По этой логике следующий конструктор должен вызывать неопределенное поведение:
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 просмотров
schedule
20.04.2022
как перегрузить пустой 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 просмотров
schedule
24.11.2022
Списки инициализаторов в 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 просмотров
schedule
04.01.2023
Разница в инициализации с фигурными скобками или без них в С++ 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 просмотров
schedule
26.02.2023
Почему порядок списка инициализаторов должен соответствовать порядку объявления членов?
Почему 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 просмотров
schedule
29.10.2023
Использование двойных фигурных скобок, например. 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 просмотров
schedule
23.02.2024
как назначить массив из списка инициализаторов
У меня ограниченные знания о 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 просмотров
schedule
09.09.2022
Список инициализаторов передается как параметр функции для массива
Как мне заставить это работать:
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