我在模板上挣扎。在我的模板类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)];
}