Вопросы по теме '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 просмотров
schedule
17.07.2023
Законно ли брать адрес ссылки 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