在Cpp中,对象的“移动语义”指的是“移动而不是将对象复制到更新的对象”的概念,但是“语义”一词确实让我感到困惑。
“语义”和“功能”有什么区别?如何正确使用这个词?如果我意识到一种叫做" max (A,B)“的方法,我们能说”我实现了最大语义“吗?如果我编码一个名为"list“的对象,我们能说”我实现了序列存储语义“吗?
发布于 2021-09-14 14:42:04
“语义学”是指书面说明的含义或解释。它经常与“语法”相比较,后者描述了指令的形式。例如,赋值foo = bar
在许多编程语言中具有相同的形式,但不一定具有相同的含义。在C++中,它意味着复制,在Rust中,它意味着移动,而在Java或Python中,它意味着复制对象引用。
应用于C++语法的“移动语义”(如赋值或将参数传递给函数)意味着语法是或可以解释为对象移动,而不是对象复制。语义不是“函数”的同义词,所以"max
语义“没有多大意义。
其他可以应用这个词的例子是参考语义而不是值语义,或者是“短路语义”(指&&
和||
运算符),而不是计算所有子句。基本上,任何你所写的东西都有多种可能的含义,你需要说出正确的名字并找出正确的。
https://stackoverflow.com/questions/69179467
复制相似问题