C++ 错误:函数返回函数
虽然至少有,但我还是问我的问题,因为那个问题还没有解决,而且看起来更复杂。我正在努力简化我的 我有一个使用.h的.cpp文件,如下所示,编译这些sheds错误如下。任何想法都值得赞赏。请注意,简化代码是为了尽可能少地只显示有问题的部分 FC_boost_prove.h:C++ 错误:函数返回函数,c++,boost,boost-signals,C++,Boost,Boost Signals,虽然至少有,但我还是问我的问题,因为那个问题还没有解决,而且看起来更复杂。我正在努力简化我的 我有一个使用.h的.cpp文件,如下所示,编译这些sheds错误如下。任何想法都值得赞赏。请注意,简化代码是为了尽可能少地只显示有问题的部分 FC_boost_prove.h: #ifndef FC_H #define FC_H #include <vector> #include "iostream" #include "boost/signal.hpp" #include "boos
#ifndef FC_H
#define FC_H
#include <vector>
#include "iostream"
#include "boost/signal.hpp"
#include "boost/bind.hpp"
#include <boost/random.hpp>
typedef boost::signal0<void()> PreUpdateSignal;
typedef PreUpdateSignal::slot_function_type PreUpdateSlot;
typedef boost::signal0<void()> PostUpdateSignal;
typedef PostUpdateSignal::slot_function_type PostUpdateSlot;
class FC {
public:
FC(uint width, uint height) {
std::cout << "In constructor." << std::endl;
}
~FC() {
//Do ...
}
void connectPreUpdate(PreUpdateSlot s) {
preUpdateSignal_.connect(s);
}
void connectPostUpdate(PostUpdateSlot s) {
postUpdateSignal_.connect(s);
}
protected:
PreUpdateSignal preUpdateSignal_;
PostUpdateSignal postUpdateSignal_;
};
#endif
\ifndef FC\u H
#定义FC_H
#包括
#包括“iostream”
#包括“增压/信号.hpp”
#包括“boost/bind.hpp”
#包括
typedef boost::信号0预更新信号;
typedef PreUpdateSignal::slot_function_type PreUpdateSlot;
typedef boost::signal0 positionpdatesignal;
typedef positionpdatesignal::slot_function_type positionpdateslot;
FC类{
公众:
FC(单元宽度、单元高度){
std::cout为什么要指定boost::signal0
?signalN模板用于无法正确解析函数签名的缺陷编译器
按照现代编译器的建议,使用信号并指定函数签名:
typedef boost::signal<void()> PreUpdateSignal;
typedef boost::signal<void()> PostUpdateSignal;
typedef boost::signal0<void> PreUpdateSignal;
typedef boost::signal0<void> PostUpdateSignal;
typedef boost::信号预更新信号;
类型DEF boost::信号姿势更新信号;
或者使用signalN并显式指定返回类型(以及每个参数类型),如有缺陷的编译器所需:
typedef boost::signal<void()> PreUpdateSignal;
typedef boost::signal<void()> PostUpdateSignal;
typedef boost::signal0<void> PreUpdateSignal;
typedef boost::signal0<void> PostUpdateSignal;
typedef boost::signal0预更新信号;
typedef boost::signal0 positionpdatesignal;
谢谢。我现在已经编译好代码并开始工作了。实际上eclipse仍然显示为错误,所以我不得不使用commanline的g++(不过这是另一个故事)。