我试图超载的std ::发现功能,通过这种方式:超载性病:发现功能
include <list>
include <string>
include "Marker.h"
namespace Test {
class MarkerContainer {
private:
std::list<Marker*> list;
double end_t;
inline bool exists(std::list<Marker*> *input_list, Marker* check);
public:
MarkerContainer();
MarkerContainer(double end_time);
bool addMarker(Marker* input);
double computeBeatTime(double sample_t);
double computeSampleTime(double beat_t);
void printAll();
};
}
std::list<Ableton::Marker*>::iterator std::find(std::list<Ableton::Marker*>::iterator first, std::list<Ableton::Marker*>::iterator last, Ableton::Marker* value){
for (;first!=last; first++) if (**first==*value) break;
return first;
}
但我抓住这个编译器错误:
Out-of-line definition of 'find' does not match any declaration in namespace 'std' in /Users/.../MarkerContainer.h
我希望我做了一些愚蠢的错误,我想要做的是简单..任何想法?
在此先感谢! 彼得
C++标准不允许你在'std'创建函数命名空间。 – 2012-02-02 00:01:46
@OliCharlesworth:总的来说,是的,但你可以专门做。 (不是说这个Q是专门的) – 2012-02-02 00:18:07