Результаты поиска по запросу "lvalue"
Почему C ++ 0x rvalue ссылка не по умолчанию?
Одна из интересных новинок грядущего стандарта C ++, C ++ 0x, - это «ссылки на значения». Ссылка на rvalue похожа на ссылку на lvalue (нормальную), за исключением того, что она может быть связана с временным значением (обычно временная может быть ...
Почему результат этого броска не lvalue?
Мне нужно несколько советов с этим странным поведением - давайте иметь этот код: int ** p;Это без проблем компилируется: p++;Но это: ((int**)p)++;Дает мне это сообщение об ошибке:“error: lvalue required as increment operand”. Я кастуюp к типу ...
Приведение указателя не дает lvalue. Почему?
После публикации одного из моих самых спорных ответовВот [https://stackoverflow.com/questions/7444464/read-bytes-methods-in-c-c/7444502#7444502] Я осмелюсь задать несколько вопросов и в конечном итоге заполнить пробелы в моих знаниях. Почему не ...
, (Я признаю, что вы можете написать это по-другому, хотя.)
+ оператор предварительного приращения дает lvalue, потому что возвращается увеличенный объект, а не его копия. Но в C это дает значение. Почему?
Временное связывание со ссылкой на lvalue
У меня есть следующий код
, gcc и clang следует рассматривать как обработку диалекта C, в котором эффективные типы, когда они установлены, становятся постоянными. Они не могут надежно распознать все случаи, когда эффективные типы могут быть изменены, и логика, необходимая для обработки, которая могла бы легко и эффективно обрабатывать многие случаи, о которых авторы gcc уже давно заявляли, не может быть обработана без потрошения оптимизации.
оложим, у меня есть кусок динамически распределенных данных: void* allocate (size_t n) { void* foo = malloc(n); ... return foo; }Я хочу использовать данные, на которые указываетfoo как особый тип,type_t, Но я хочу сделать это позже, а не во ...
Тип возврата '?:' (Троичный условный оператор)
Почему первый возвращает ссылку? int x = 1; int y = 2; (x > y ? x : y) = 100;Пока второго нет? int x = 1; long y = 2; (x > y ? x : y) = 100;Собственно, второе вообще не компилировалось - «не осталось значения от назначения».
память или ограниченный ресурс, такой как дескриптор файла. Но необходимость передать их обратно пахнет скорее «плохим дизайном», чем «полезным ограничением».
рограммировании на C ++ 03 мы не можем передать безымянный временныйT() к функцииvoid foo(T&);, Обычное решение - дать временному имя, а затем передать его следующим образом: T v; foo(v);Теперь идет C ++ 0x - и теперь со ссылками на rvalue ...