Нет соответствующей функции для вызова ... с помощью dtl-cpp - PullRequest
0 голосов
/ 14 июля 2011

Я использую 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, но это не сработало.Кто-нибудь знает, что я мог сделать не так?

1 Ответ

1 голос
/ 14 июля 2011

Aha! Я нашел то, что сделал неправильно.

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

должно быть

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

как говорит компилятор.

...