元编程: is_lvalue_reference<Tp>

minute_5

关注

阅读 70

2022-01-16

判断是否为左值引用

#include <iostream>
#include <type_traits>

int main()
{
    int a = 10;
    int& b = a;

    std::cout << "This Demo: is_lvalue_reference" << std::endl;
    if(std::is_lvalue_reference<int>::value)
    {
        std::cout << __LINE__ << ": is left value reference" << std::endl;
    }
    else
    {
        std::cout << __LINE__ << ": isn't left value reference " << std::endl;
    }

    if(std::is_lvalue_reference<int&>::value)
    {
        std::cout << __LINE__ << ": is left value reference" << std::endl;
    }
    else
    {
        std::cout << __LINE__ << ": isn't left value reference " << std::endl;
    }

    if(std::is_lvalue_reference<int&&>::value)
    {
        std::cout << __LINE__ << ": is left value reference" << std::endl;
    }
    else
    {
        std::cout << __LINE__ << ": isn't left value reference " << std::endl;
    }

    if(std::is_lvalue_reference<decltype (a)>::value)
    {
        std::cout << __LINE__ << ": is left value reference" << std::endl;
    }
    else
    {
        std::cout << __LINE__ << ": isn't left value reference " << std::endl;
    }

    if(std::is_lvalue_reference<decltype (b)>::value)
    {
        std::cout << __LINE__ << ": is left value reference" << std::endl;
    }
    else
    {
        std::cout << __LINE__ << ": isn't left value reference " << std::endl;
    }

    return 0;
}

 

精彩评论(0)

0 0 举报