我正在使用dtl-cpp 逐行比较两个文件的差异。
我已经设置了这个比较器:
class LBCompareNSString : public dtl::Compare<NSString *> {
public:
virtual bool impl(const NSString *& A, const NSString *& B) const {
return [A isEqualToString:B];
}
};
我有两个NSString
对象向量,就像自定义比较器一样:
std::vector<NSString *> linesInACxx;
std::vector<NSString *> linesInBCxx;
我以这种方式设置了 dtl-cpp:
LBCompareNSString comparator;
dtl::Diff< NSString *, std::vector<NSString *>, LBCompareNSString > dtlEngine(linesInACxx, linesInBCxx, comparator);
dtlEngine.compose();
但是,当我编译时,我在 Diff.hpp 中收到此错误:
Diff.hpp:506: error: no matching function for call to 'LBCompareNSString::impl(NSString*&, NSString*&)'
LBDifferenceEngine.mm:7: note: candidates are: virtual bool LBCompareNSString::impl(const NSString*&, const NSString*&) const
我不知道如何声明该方法以便它可以工作。我尝试删除virtual
,const
但没有奏效。有谁知道我可能做错了什么?