Вопросы по теме 'most-vexing-parse'

Почему это не неприятный разбор?
По сути, это продолжение этот вопрос о наиболее неприятном анализе. Я могу понять, что это связано с двусмысленностью между объявлением функции и определением переменной. А вот в коме онлайн меня просто утомило следующее. class T{ public:...
210 просмотров
schedule 29.10.2022

С++ - Что это делает, если конструктор является закрытым?
Почему в приведенном ниже коде компилятор не жалуется на mClass2? class CMyClass{ private: CMyClass(){} }; void TestMethod(){ CMyClass mClass1; //Fails. CMyClass mClass2(); //Works. }
445 просмотров

Запутанная деталь о самом неприятном разборе
Мой вопрос заключается в том, как следующую строку можно проанализировать как объявление функции: vector<int> v(istream_iterator<int>(cin), istream_iterator<int>()); Я понимаю большинство деталей самого раздражающего...
2699 просмотров
schedule 14.12.2022

Разница в синтаксисе унифицированной инициализации
Какая разница между делать A a{ A() }; а также, A a( A{} ); чтобы избежать самого неприятного разбора ? Когда я должен использовать конкретный?
1044 просмотров
schedule 30.08.2022

Наследование от std::vector, ошибка компилятора? (самый неприятный разбор)
Для тех, кто видит этот вопрос: взгляните на ответ и рассмотрите возможность использования: cdecl Почему приведенный ниже код выдает ошибку компилятора: prog.cpp: In function ‘int main()’: prog.cpp:23:4: error: request for member ‘size’ in...
165 просмотров
schedule 20.07.2022

По какой причине в этом случае я получаю запрос на член с ошибкой неклассового типа?
Я обнаружил сложную (по крайней мере для меня: D) проблему в следующем коде: class Beta { public: Beta(double d) { value = d; } double getValue() const { return value; }...
97 просмотров

Почему конструктор A не вызывается для оператора A x(A())?
Это очень простой вопрос о C++. Почему не вызывается конструктор для оператора "A x(A())"? В следующем коде, который я запускал с g++ 4.8.2, конструктор (как и деструктор) вызывается только один раз. Это может быть связано с оптимизацией, но мне...
366 просмотров
schedule 26.10.2022

Сбой конструктора копирования С++
Я просмотрел различные варианты, предложенные в качестве вопросов, на которые, по мнению Stackoverflow, уже может быть ответ, но ничего из того, что я видел, не приблизилось. Образец кода: #include <math.h> class v2 { public: float...
195 просмотров
schedule 03.11.2022

Как инициализировать значение объекта типа шаблона в C ++ 03
Предположим, у меня есть шаблон функции и я хочу объявить объект, инициализированный значением: template<typename T> void foo() { // declare and default-initialize 'x' of type 'T' } Могу ли я это сделать? T x; не работает с...
87 просмотров
schedule 03.03.2022

Указывает ли указание использования void в объявлении функции, не принимающей аргументов, на самый неприятный анализ?
Является ли Most Vexing Parse корнем двусмысленности относительно того, следует ли использовать void в качестве параметра объявления функции, которая не принимает аргументов? Например, следующий код компилируется без ошибок и работает нормально...
160 просмотров

Путаница с конструкторами перемещения: невозможно вызвать конструктор перемещения
У меня возникли трудности с пониманием конструкторов перемещения в C++. Я сделал простой класс с конструктором по умолчанию, конструктором копирования, конструктором перемещения и деструктором. Кроме того, я определил функцию с двумя перегрузками:...
800 просмотров

Самый неприятный разбор с доступом к массиву
Просматривая какой-то код C++03, я обнаружил пример самого неприятного синтаксического анализа , который меня смутил: #include <sstream> #include <string> int main(int, char** argv) { std::stringstream ss(std::string(argv[0]));...
1309 просмотров
schedule 13.12.2023

конструктор по умолчанию сложного класса не работает
Согласно http://www.cplusplus.com/reference/complex/complex/complex/ , класс complex<double> имеет конструкцию по умолчанию в форме complex (double re = 0.0, double im = 0.0); . Однако я не знаю, действительно ли это правильно. Может ли...
158 просмотров
schedule 18.10.2022

Неясный самый неприятный разбор
Предположим, что есть следующий класс Foo. struct Foo { int i; }; если я хочу создать экземпляр этого класса и инициализировать его, я должен сделать: Foo foo1 = Foo(); для вызова конструктора. int main(void) { foo1 = Foo();...
106 просмотров