170 похожих чатов

Правильно ли я понимаю, что в foo(“abc”) “abc” это rvalue

выражение и я могу создать move перегрузку foo, тогда “abc” будет отдано в нее?

8 ответов

25 просмотров

Нет: строковые литералы - lvalue. Представьте, что "text" - своеобразное имя для char const[n] со static-storage-duration. Т.е. приблизительно как если бы char const[] text{"text"}; int main ( ) { foo(text); }

Да

Sergey Anisimov
Нет: строковые литералы - lvalue. Представьте, что...

Ты можеш написать && ну вообше то да const str это всегда lvalue

Дмитрий- Автор вопроса
Sergey Anisimov
Нет: строковые литералы - lvalue. Представьте, что...

Если это одноразовая строка, и я хочу ускорить программу, стоит писать foo(std::move(“abc”))?

Дмитрий
Если это одноразовая строка, и я хочу ускорить про...

Это ничего не даст: релевантное про перемещение.

Дмитрий- Автор вопроса
Sergey Anisimov
Это ничего не даст: релевантное про перемещение.

Так если у меня есть move перегрузка foo, то foo(std::move(“abc”)) позволит мне избежать копирования?

. Azmiddin
Ты можеш написать && ну вообше то да const str это...

Совсем "что угодно" - нет. Но любой объектный указатель неявно приводим к указателю на void. Т.е., например: int i; void f ( void* ); /* ... */ f(&i);

Дмитрий
Так если у меня есть move перегрузка foo, то foo(s...

Лучше почитайте сообщение, к которому я отослал, чтобы понять, что делает move(). Перегрузка не сможет воспользоваться правой ссылочностью с т.з. переиспользования какого-то, если она для массива констант.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта