内存序相关知识点

此篇是对内存序学习笔记(一)——表达式求值顺序-CSDN博客 罕见概念的解释。


 

  • 完整表达式。没有父表达式(与成分表达式对应)的表达式。例如
a = 1, b = 2;

std::invoke([](int a, int b){}, 1, 2);
  • 弃值表达式。返回值未被使用的表达式。例如
a = 1, b = 2;

std::max<int>(1, 2);
  • 成分表达式。子表达式。例如
{
    a = 1, b = 2;
}

其中的 a, b, 1, 2, a = 1 和 b = 2

{
    std::max<int>(a + 1, b + 2);
}

其中的 a, b, 1, 2, a + 1 和 b + 2
  • 指名函数表达式。值计算结果为函数的表达式。例如
{
    auto func = [](){};
    func();
}

其中的 `func`
  • 成员指针表达式。值计算结果为类成员指针的表达式。例如
struct B {
int data;
};

{
    auto B::*ptr = &B::data;
    B b;
    b.*ptr = 1;
}

其中的 `b.*ptr`
  • 复合赋值表达式。复合赋值运算符作为最后计算的表达式。例如
a += 1;

a += (1 + 1);

复合赋值运算符包括但不限于

+=
*=
>>=
<<=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值