模板函数中的C ++默认参数

时间:2018-04-26 18:03:50

标签: c++ templates

我在模板上挣扎。在我的模板类Find中,我想要方法max。此方法应该能够使用可选参数filter和可选参数no matching function for call to 'test<std::basic_string<char>, int>::Find(const char [5])'。过滤器可以表示指向函数,函子或lambda表达式的指针

问题是当我尝试编译代码时。我收到一个错误:std::function这不应该发生,因为我指定了默认参数。

有人可以解释一下如何正确管理这些模板吗?我应该filter使用template <typename F>代替template <typename X> bool cmp (const X &) { return true; } template <typename A, typename B> class test { public: // ... template <typename F> set<A,B> Find(A place, int max = 0, const F & filter = cmp) // problem, won't use cmp as default { // .. do something }; }; int main() { test<string,int> lines; lines . Find ( "test" ); return 0; } 吗?

-(NSString *)description
{
    std::string fieldName = *(self->FieldName);
    return [NSString stringWithFormat:@"<FieldName: %@>",
        toNS(fieldName)];
}

0 个答案:

没有答案