逗号操作符必须是左结合的吗?
Does the comma operator have to be left-associative?
根据这个优先级表,逗号操作符是左结合的。即将a, b, c
解析为(a, b), c
。这是必须的吗?a, (b, c)
不会有完全相同的行为吗?
由于存在可重载的operator,
,所以不存在相同的行为。a, (b, c)
可以调用不同于(a, b), c
的重载
逗号操作符具有从左到右的结合性。用逗号分隔的两个表达式从左到右求值。总是对左操作数求值,并且在对右操作数求值之前完成所有副作用。
逗号可以在某些上下文中用作分隔符,例如函数参数列表。不要混淆逗号作为分隔符和作为操作符的用法;这两种用法完全不同。
http://msdn.microsoft.com/en-us/library/zs06xbxh.aspx相关文章:
- 多态性和功能结合
- 将 Vulkan 与 SFML 结合使用?
- 将 c++ 生成器应用程序与外部 dll 结合使用
- 如何将增强MSM与增强信号结合使用?
- MS Visual Studio 解决方案结合了非托管C++项目和 C# 项目
- 函数未在作用域中声明 / 如何结合使用 header.h、header.cpp 和 main.cpp?
- 将预编译的 C 共享库与 JNI/NDK 结合使用
- C++ 将函数指针与最佳性能相结合
- 将 Lua 与 C++ DLL 结合使用
- 为什么push_back和emplace_back结合在一起时,会有不同的行为
- 将 aws-iot-device-sdk-cpp-v2 与 CMake 结合使用
- 将2个欧拉角与GLM相结合的问题
- 结合std::execution和OpenMP是否可取
- 抽象和派生与std::list相结合
- 为什么map有操作符[],set没有
- 想要将 CGAL 与四元数相结合是否合乎逻辑
- 存储/传递 v8 承诺解析器供以后使用的最佳实践?(结合C++线程)
- 具有反向结合性的c++重载操作符
- 操作符删除结合律
- 逗号操作符必须是左结合的吗?