在C++中怎么判断一个东西是左值还是右值

2023年8月13日,周日早上


#include 

// 函数模板,根据参数类型判断是左值还是右值
template
void checkValueType(T&& arg)
{
    if constexpr(std::is_lvalue_reference())
        std::cout << "Expression is an lvalue." << std::endl;
    else
        std::cout << "Expression is an rvalue." << std::endl;
}

int main()
{
    int x = 42;
    const int& y = x;

    checkValueType(++x);      // x 是左值
    checkValueType(y);      // y 是左值
    checkValueType(42);     // 42 是右值
    checkValueType(x + y);  // x + y 是右值

    return 0;
}

在C++中怎么判断一个东西是左值还是右值_第1张图片

 

你可能感兴趣的:(我的博客,c++,算法,开发语言)