Вопросы по теме 'initializer-list'
C++ вектор массивов
Почему это работает:
std::pair<int, int> p = {1,2};
std::vector<std::pair<int, int>> vp = { {1,2}, {3,4} };
Но это не так?
std::array<int, 2> a = {1,2}; // still ok
std::vector<std::array<int, 2>> va =...
16110 просмотров
schedule
04.03.2022
Как построить объект std::array со списком инициализаторов?
Возможный дубликат: Как инициализировать массив элементов с помощью initializer_list?
Вы можете просто создать std::array со списком инициализаторов:
std::array<int, 3> a = {1, 2, 3}; // works fine
Однако, когда я...
26179 просмотров
schedule
24.08.2022
Почему размер не является аргументом шаблона std::initializer_list?
std::initializer_list создается компилятором из списка инициализации, заключенного в фигурные скобки, и размер этого списка должен быть постоянной времени компиляции.
Так почему же комитет решил исключить размер из аргументов шаблона? Возможно,...
2008 просмотров
schedule
15.04.2024
Вызов перегруженного конструктора из списка инициализации конструктора
В приведенном ниже коде я намерен вызвать один из двух перегруженных конструкторов для kap (класс opacity ) в зависимости от того, какие аргументы передаются объекту класса material :
class opacity{
private:
int mode;
double kap_const;...
2879 просмотров
schedule
16.04.2023
initializer_list и семантика перемещения
Могу ли я перемещать элементы из std::initializer_list<T> ?
#include <initializer_list>
#include <utility>
template<typename T>
void foo(std::initializer_list<T> list)
{
for (auto it = list.begin(); it !=...
20631 просмотров
schedule
26.04.2022
Оптимизация за счет списка инициализаторов конструктора
Конструкторы должны инициализировать все свои объекты-члены через список инициализаторов, если это возможно. Это более эффективно, чем создание конструкторов с помощью присваивания внутри тела конструктора.
Может ли кто-нибудь объяснить,...
3687 просмотров
schedule
08.04.2022
Сделать математический векторный класс осведомленным о списке инициализаторов
У меня есть математический векторный класс, который разработан следующим образом:
class Vector3D {
public:
float x;
float y;
float z;
public:
Vector3D() {}
Vector3D(float xx, float yy, float zz = 0.0) { x=xx; y=yy; z=zz; }...
767 просмотров
schedule
21.03.2022
Что может пойти не так, если инициализация списка копирования допускает явные конструкторы?
В стандарте C++, §13.3.1.7 [over.match.list], указано следующее:
При инициализации списка копирования, если выбран конструктор explicit , инициализация имеет неправильный формат.
Вот почему мы не можем сделать, например, что-то вроде...
4834 просмотров
schedule
08.06.2022
gcc: отсутствие предупреждения о порядке инициализации в конструкторах
Должен ли gcc предупреждать о порядке инициализации переменных-членов a и b в классе C? В основном объект b инициализируется, и его конструктор вызывается перед объектом A. Это означает, что b использует неинициализированный a .
#include...
1129 просмотров
schedule
04.06.2022
Конструктор С++ предотвращает успешную компиляцию
Я столкнулся со странной проблемой на С++, и я был бы признателен за объяснение. Этот фрагмент не компилируется:
size_t bufLength = 18;
char* buffer = new char[bufLength];
auto_array_ptr<char> pBuffer1 = buffer; // fails...
355 просмотров
schedule
24.01.2023
БОЛЬШАЯ ошибка VС++? Почему список-инициализаторов не инициализирует структуру по значению?
Стандарт С++ 11 8.5.4.3 гласит:
«Если в списке инициализаторов нет элементов, а T является типом класса с конструктором по умолчанию, объект инициализируется значением».
struct A
{
int get() { return i; }
private:
int i;
};
int...
335 просмотров
schedule
24.11.2022
Можно ли перегружать операторы для литералов initializer_list?
Я пытаюсь перегрузить операторы для std::initializer_list , но следующее не компилируется ни в GCC 4.7.2, ни в Clang 3.2:
#include <initializer_list>
void operator+(const std::initializer_list<int>&, const...
954 просмотров
schedule
04.11.2022
Являются ли множественные мутации в списках инициализаторов неопределенным поведением?
Меня интересуют списки инициализаторов и точки последовательности. Некоторое время назад я читал, что порядок оценки в списках инициализаторов слева направо. Если это так, то должна быть какая-то точка следования между точками оценки, я не прав?...
758 просмотров
schedule
14.12.2023
читать данные в списке инициализации
При создании экземпляра класса я хотел бы прочитать данные из файла и обработать их в несколько объектов класса. То, что я сделал до сих пор (и работает хорошо), это
myData::myData(const std::string & file):
data1_(this->read(file)),...
427 просмотров
schedule
30.08.2022
Ошибка «Избыточные элементы в инициализаторе структуры» с униформной инициализацией С++ 11
Я удивлен следующей ошибкой компилятора:
template <typename T>
struct A
{
A(T t): t_{t} {}
T t_;
};
struct S
{
};
int main()
{
A<S> s{S{}};
}
Ошибка (с лязгом):
test.cpp:4:16: error: excess elements in struct...
4386 просмотров
schedule
24.02.2024
std :: initializer_list без cbegin () / cend ()
Если элементы в std::initializer_list всегда являются константными значениями, почему у нас есть метод шаблона, такой как begin()/end() , а не cbegin()/cend() ? Эти имена (по соглашению, по сравнению, например, с std::vector ) могут...
746 просмотров
schedule
03.10.2022
Ошибка вывода аргумента шаблона Variadic при передаче списков инициализаторов
Bar содержит std::vector из std::pair из std::array из FooValueAdaptor из. FooValueAdaptor неявно преобразует int в bool в FooValue , что не имеет большого смысла в этом надуманном примере, но имеет смысл в моем приложении. Я...
745 просмотров
schedule
30.01.2023
Назначение свойству только для чтения в списке инициализаторов
Может кто-нибудь сказать мне, какого черта он компилируется?
namespace ManagedConsoleSketchbook
{
public interface IMyInterface
{
int IntfProp
{
get;
set;
}
}
public class MyClass...
835 просмотров
schedule
07.05.2023
Java-подобные Arrays.asList() в С++
Поддерживает ли С++ либо STL, либо существует внешняя библиотека, поддерживающая Arrays.asList() ?
Типичное использование
private ArrayList<String> lexeme = new ArrayList<String>(Arrays.asList(" ", ",", "(", ")", ";", "=", ".",...
574 просмотров
schedule
11.06.2022
С++ 11 ошибка initializer_list
Рассмотрим код:
#include <iostream>
#include <vector>
#include <string>
int main()
{
std::vector<std::string> v{{"awe", "kjh"}}; // not v{"awe", "kjh"}
std::cout << v.size() << std::endl;
return...
225 просмотров
schedule
10.03.2022