【发布时间】:2014-04-22 09:50:03
【问题描述】:
我正在研究开源项目ROS。当我看到奇怪的代码时。
Server server(n, "do_dishes", boost::bind(&execute, _1, &server), false);
变量 server 在分配为 server 之前使用。那可能吗?至少,我的 Visual Studio 2010 编译器不理解这种代码风格。请让我知道这是否真的是可能的代码。
代码原文件:http://wiki.ros.org/actionlib#C.2B-.2B-_SimpleActionServer
--------- 添加
谢谢你的好意。但是,当我编译它时出现“'server':未声明的标识符”错误。所以我测试了简单的代码。
class TestCls {
public:
TestCls(TestCls *aa)
{
}
};
int main(int argc, char **argv)
{
TestCls tt(&tt);
}
它也会犯同样的错误。 “'tt':未声明的标识符”。 我错过了什么吗?请帮帮我。
【问题讨论】:
-
这看起来像是你的编译器的一个错误。它应该编译。 G++ example, Clang++ example.
-
好的。似乎 MS Visual Studio 2010 无法编译它。谢谢你曼卡斯。谢谢比尔盖茨。