Вопросы по теме 'lvalue'

Использование функции, возвращающей указатель как LValue
Почему я не могу использовать функцию, возвращающую указатель как lvalue? Например, этот работает int* function() { int* x; return x; } int main() { int* x = function(); x = new int(9); } но не это int* function() {...
415 просмотров
schedule 23.03.2022

Связь между спецификатором и квалификатором?
const и volatile называются cv-qualifier по спецификации C. Какая именно разница между specifier и qualifier ( cv-qualifier )? Является ли квалификатор также спецификатором? Нужно ли, чтобы qualifier было только с lvalue? Что...
1492 просмотров
schedule 08.01.2023

Почему взятие адреса временного незаконно?
Я знаю, что код, написанный ниже, незаконен void doSomething(std::string *s){} int main() { doSomething(&std::string("Hello World")); return 0; } Причина в том, что нам не разрешено брать адрес временного объекта. Но мой...
10975 просмотров
schedule 25.05.2022

Является ли разыменованный указатель допустимым lvalue?
Принимая определение: int i = 10; int *p = &i; Почему *p является допустимым lvalue здесь: *p+=10; Не должен ли *p оценивать значение int, хранящегося в &i, т.е. 10 и, следовательно, генерировать ошибку «Не lvalue»?
2995 просмотров
schedule 20.09.2022

С++: является ли возвращаемое значение L-значением?
Рассмотрим этот код: struct foo { int a; }; foo q() { foo f; f.a =4; return f;} int main() { foo i; i.a = 5; q() = i; } Ни один компилятор не жалуется на это, даже Clang. Почему строка q() = ... правильная?
9570 просмотров
schedule 03.06.2022

Что такое динамический тип объекта
Я думаю, что динамический тип означает динамически выделяемый объект с использованием new . В следующем случае вы говорите, что p указывает на динамический или статический тип объекта? Стандартно это не говорит о том, что динамический тип...
6383 просмотров
schedule 23.04.2022

как я могу сохранить указатель на смещенное местоположение в распределенной области памяти в C?
Я пытаюсь сделать очень простую Hashtable с библиотеками, которые у меня есть. Строка, которую я пытаюсь создать, содержит либо C-строку, либо int в качестве ключа. Значение может быть 4 различных типов. Если это структура, я пытаюсь сохранить...
110 просмотров
schedule 10.12.2022

Произойдет ли преобразование lvalue в rvalue?
Стандарт C ++ (4/5) преобразование lvalue-to-rvalue не выполняется для операнда унарного оператора &. Например: int x; int *p = &x; В приведенном выше случае p являются ли &x оба значения l? или Какой был бы подходящий...
1363 просмотров

Законно ли брать адрес ссылки const lvalue?
#include <iostream> int foo() { return 0; } int main() { const int& a = foo(); std::cout << &a << std::endl; } В этом коде a привязывается к rvalue. Законно ли брать его адрес? (И под законным я подразумеваю:...
643 просмотров
schedule 18.11.2022

Из каких lvalue нельзя брать адрес?
В этой конференции Скотт Мейерс начинает со слов lvalues обычно являются выражениями, адрес которых можно взять. Я подчеркиваю слово в целом: что такое lvalue, адрес которого вы не можете взять? (если он есть). EDIT : предоставьте фрагменты...
1176 просмотров
schedule 19.05.2022

Кто-нибудь объяснит левое значение и правое значение на уровне языка ассемблера?
Я думаю, что все здесь знают, что --i — это выражение с левым значением, а i-- — это выражение с правым значением. Но я прочитал ассемблерный код двух выражений и обнаружил, что они скомпилированы в один и тот же ассемблерный код: mov...
1577 просмотров
schedule 20.07.2022

структура в c, элементы которой также являются структурами
У меня есть следующие structs : typedef struct stack { void* ss_sp; size_t ss_size; // ... } stack_t; typedef struct ucontext { ucontext_t* uc_link; stack_t uc_stack; // ... } ucontext_t; typedef struct mythread_type {...
335 просмотров
schedule 09.03.2023

Как мне написать разные операторы [] для LValue и RValue?
Я пытаюсь связать библиотеку C с моим проектом C++. Библиотека имеет свой собственный векторный тип, предположим, что это VECTOR , и она обеспечивает доступ к элементам: int vector_set_value(VECTOR* vec, int index, double new_value); int...
320 просмотров
schedule 14.05.2023

Перегрузка неконстантной ссылочной функции С++
В следующем коде: int foo(const int& f) //version 1 { int g = f; return int(foo(g)); // calls itself, turning into SO } int& foo(int& f) //version 2 { f *= -1; return f; } int main() { int f = 11; cout...
110 просмотров
schedule 27.01.2024

Ошибка: выражение должно быть модифицируемым lvalue
Я получаю эту ошибку в цикле for, когда пытаюсь присвоить значения x_dev, y_dev и pearson. Насколько я вижу, все они должны быть модифицируемыми. Может ли кто-нибудь увидеть, где я ошибся? class LoopBody { double *const x_data; double...
29916 просмотров
schedule 11.09.2022

Использование функции, возвращающей указатель как lvalue
Скажем, я хочу динамически выделить массив, который может содержать любые данные, т.е. используя void** в качестве моего типа, в C. Затем, вместо того, чтобы каждый раз переписывать арифметическую логику указателя, я хочу простую функцию, которая...
679 просмотров
schedule 22.05.2023

Ссылка на ошибку указателя: неконстантная ссылка lvalue const * FooBarClass не может привязываться к временному
ФуКласс.h: class FooClass { . . . private: World *myWorld; const Player *&player; . . . } Фукласс.cpp: FooClass::FooClass(..., World *w) : myWorld(w), player(w->getPlayer()) { ....
1097 просмотров
schedule 28.03.2023

Является ли результат приведения rvalue?
Позволять int a = 0; Тогда является ли (int)a rvalue в стандартном C++? Разные компиляторы показывают разные результаты для этого кода: #include <iostream> using namespace std; void f(int& x) { cout << "l...
1556 просмотров
schedule 30.07.2023

Ссылка Rvalue рассматривается как Lvalue?
Я опубликовал этот ответ: https://stackoverflow.com/a/28459180/2642059 , который содержит следующий код: void foo(string&& bar){ string* temp = &bar; cout << *temp << " @:" << temp << endl; } bar...
6195 просмотров
schedule 31.12.2022

Инициализация ссылки Lvalue из списка инициализаторов, заключенного в фигурные скобки, не компилируется
У меня очень простая программа: #include <iostream> using namespace std; int main() { string var {"test"}; string &lr {var}; cout << var << "\n"; cout << lr << "\n"; }...
330 просмотров
schedule 02.09.2022