В чем именно разница между std::forward и std::forward_like?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 В чем именно разница между std::forward и std::forward_like?

Сообщение Anonymous »

Следующий код дает тот же результат, конечно, используя std::forward_like, вы можете поместить весь self.member в скобки, в этом весь смысл? (скомпилировать с помощью clang 18)
#include
#include

auto g(int &&) { std::println("rvalue g"); }
auto g(int const &&) { std::println("const rvalue g"); }
auto g(int &) { std::println("lvalue g"); }
auto g(const int &) { std::println("const lvalue g"); }

struct S {
int member;

auto use_foward_like(this auto &&self) {
g(std::forward_like(self.member));
}

auto use_foward(this auto &&self) {
g(std::forward(self).member);
}
};

int main() {
S s;

std::println("use forward_like:");
s.use_foward_like();
std::as_const(s).use_foward_like();
std::move(s).use_foward_like();
static_cast(s).use_foward_like();

std::println("\nuse forward:");
s.use_foward();
std::as_const(s).use_foward();
std::move(s).use_foward();
static_cast(s).use_foward();
}


Подробнее здесь: https://stackoverflow.com/questions/781 ... rward-like
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • В чем разница между RequestDispatcher.forward() и HttpServletResponse.sendRedirect()? [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между @use и @forward в SASS?
    Anonymous » » в форуме CSS
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • В чем именно разница между Public Class и Struct (в cpp) [дубликат]
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • `std::map<std::string, enum{1, 2, 3, 4}>` (или std::map<std::string, tuple<bool, bool>>`) кэширует` против `std: :set<st
    Anonymous » » в форуме C++
    0 Ответы
    323 Просмотры
    Последнее сообщение Anonymous
  • Почему std::forward возвращает rvalue при передаче lvalue? [дубликат]
    Гость » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Гость

Вернуться в «C++»