【发布时间】:2011-05-31 15:27:43
【问题描述】:
我已经阅读了this 问题,我想补充一下,使用逗号运算符不能完成的事情是什么。这让我很困惑,因为我可以这样做:
int arr[3];
arr[0]=1,arr[1]=2,arr[2]=3;
但是当我这样做时:
int arr[3],arr[0]=1,arr[1]=2,arr[2]=3;
它给了我一个编译器错误。
请问逗号运算符在实际应用中有哪些限制?
【问题讨论】:
-
还有一个有趣的问题是可以用逗号操作符做什么。重载逗号运算符是在编译时测试表达式类型是否为 void 的正确工具,即。
sizeof((expr, foo())) == sizeof(foo)其中foo是用户定义的类型,并且有一个template <typename T> foo (&operator,(T, foo))[2];。与“T = void”一起使用时,使用默认的逗号运算符。
标签: c++ c comma-operator