dtl-cppを使用して、2 つのファイルの違いを 1 行ずつ比較しています。
このコンパレータを設定しました:
class LBCompareNSString : public dtl::Compare<NSString *> {
public:
virtual bool impl(const NSString *& A, const NSString *& B) const {
return [A isEqualToString:B];
}
};
NSString
カスタム コンパレータのように、オブジェクトの 2 つのベクトルがあります。
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
ましたが、うまくいきませんでした。私が何を間違えたのか誰か知っていますか?