我要檢查,如果數據字段是有效的(有效的手段是不空,不填充默認值)通過STD傳遞一個成員函數::功能
基本上
return (!connector->IsNull(field_id) and connector->Get<type>Default(field_id, default_value))
但「類型「可以是多種類型之一(string,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,"")
我得到錯誤「error:引用非靜態成員函數必須調用 」,因爲GetStringWithDefault不是一個靜態函數,我該如何解決這個問題?
或者,有沒有辦法讓它稍微笨拙一點?
是否有可能以某種方式刪除「連接器」參數? – Narabhut
@Narabhut除非你刪除'connector-> IsNull(field_id)'檢查。 –