Вопросы по теме 'uniform-initialization'

Обходной путь макроса/встроенной функции для отсутствующих юниформ-инициализаторов в MSVC10/11
Есть ли полупрозрачный способ, который упростил бы кодирование в стиле, похожем на то, что можно было бы сделать с юниформ-инициализаторами, без использования фактической функции? Я готов отказаться от безопасности типов и других ограничений...
119 просмотров

Попытка построения временного объекта с использованием только имени класса в объявлении
С++ Объекты этого класса cout s сообщения, когда они создаются и уничтожаются. Я попытался построить временный объект, используя объявление только имени класса, но это дало неожиданный результат. В № 1 я создаю временный безымянный объект с...
499 просмотров

Агрегатная инициализация с фигурными скобками
В С++ 11 можно ли копировать агрегаты с синтаксисом фигурных скобок? У меня есть следующий код: struct s { int x; }; template<class T> struct holder { template<class A> holder(A&& x) : t{x} {} T t; };...
973 просмотров

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

Инициализация T v{}
Я читаю стандарт С++ 11, но не могу понять, T x{}; инициализируется значением или инициализируется по умолчанию (автоматическое сохранение). В нем действительно четко сказано, что: 10 Объект, инициализатором которого является пустой...
1021 просмотров

Как использовать std::map::operator= со списками инициализаторов
Я задал тот же вопрос раньше о boost::assign::map_list_of (который не t получить ответ), тогда я подумал, что, возможно, использование инициализации фигурных скобок поможет, но это не помогло. Это отлично работает: std::map<int,...
523 просмотров

Каково обоснование того, как С++ обрабатывает универсальную инициализацию со списками инициализации?
Единый синтаксис инициализации C++ исправляет самый неприятный синтаксический анализ . Ура. Но затем он вводит путаница при работе со списками инициализации . Бу. Существующее поведение таково: std::vector<int> the_vec{4}; вызовет...
410 просмотров

Синтаксис инициализации объекта в C++ (T obj = {} vs T obj{})
В чем разница между двумя формами инициализации, T obj = {…} и T obj{…} ? Сначала я думал, что T obj = {…} — это сокращение от T obj = T{…} , когда временный объект копируется в наш новый объект. Это, хотя и не выполняет конструктор копирования...
87 просмотров

Гарантированное удаление копии для инициализации массива с унифицированными фигурными скобками. Разве это не должно быть обязательным, начиная с С++ 17?
Насколько я правильно понимаю новые правила https://en.cppreference.com/w/cpp/language/copy_elision http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html Этот код должен компилироваться для компиляторов, соответствующих...
87 просмотров