【发布时间】:2015-11-06 20:09:05
【问题描述】:
我想检查一个数据字段是否有效(有效表示不为空且未填充默认值)
基本上
return (!connector->IsNull(field_id) and connector->Get<type>Default(field_id, default_value))
但“类型”可以是多种类型(字符串、int64 等)中的一种,因此有 5-6 种不同的函数。我为它创建了一个辅助函数,我正在尝试传入相关的 GetDefault...
template<typename T> bool IsValidField(std::unique_ptr<Connector>& connector, const std::function<T(int, T)> &GetDefault, int field_id, T default_value){
return (!connector->IsNull(field_id) && connection->GetDefault(field_id, default_value) != default_value);
}
我正在调用辅助函数......
IsValidField(connector, connector->GetStringWithDefault,20,"")
我收到错误“错误:必须调用对非静态成员函数的引用 " 因为 GetStringWithDefault 不是静态函数,我该如何解决这个问题?
或者,有没有办法让它稍微不那么尴尬?
【问题讨论】:
标签: c++ c++11 std-function