gpt4 book ai didi

c++ - 使用 dtl-cpp 调用没有匹配的函数

转载 作者:行者123 更新时间:2023-11-28 08:18:50 25 4
gpt4 key购买 nike

我正在使用 dtl-cpp逐行比较两个文件的差异。

我已经设置了这个比较器:

class LBCompareNSString : public dtl::Compare<NSString *> {
public:
virtual bool impl(const NSString *& A, const NSString *& B) const {
return [A isEqualToString:B];
}
};

我有两个 NSString 对象 vector ,就像自定义比较器一样:

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

我不知道如何声明该方法才能正常工作。我尝试删除 virtualconst 但这没有用。有谁知道我可能做错了什么?

最佳答案

啊哈!我发现我做错了什么。

virtual bool impl(const NSString *& A, const NSString *& B) const

应该是

virtual bool impl(NSString *& A, NSString *& B) const

就像编译器说的那样。

关于c++ - 使用 dtl-cpp 调用没有匹配的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6697592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com