我必须检查一个类的成员是否为空。该类正在从json文件读取一些值,如果某些成员为空,则表示json格式不正确。到现在为止,我不得不检查字符串的空白,并且我已经使用函数完成了它:
void ConfigFile::checkEmptyness(const std::string& strIn, const std::string& memberNameIn, const std::string& pathIn)
{
if (strIn.empty())
{
throw ConfigFileException(emptyStringOrGetFailedMsg(pathIn, memberNameIn));
}
}
现在我必须修改应用程序以从json读取浮点数向量。我找到了如何从json中读取矢量:
for (auto& item : tmpPT.get_child(path))
{
float label = item.second.get_value< float >();
checkNegativity< float >(label, "classifierSearchedClass", path);
m_classifierSearchedClass.push_back(label);
}
但我正在考虑验证它是否也是空的。我可以创建一个具有vector参数的重载函数checkEmptyness
。所以,我的问题是:
我应该创建一个模板,还是只是一个重载函数?
如果要创建模板,请执行以下操作:
template< typename T>
void ConfigFile::checkEmptyness(const T& arrIn, const std::string& memberNameIn, const std::string& pathIn)
{
if (arrIn.empty())
{
throw ConfigFileException(emptyStringOrGetFailedMsg(pathIn, memberNameIn));
}
}
是一个很好的方法,或者使用重载更好?