gpt4 book ai didi

c++ - 我应该使用模板来检查字符串和 vector 是否为空吗?

转载 作者:行者123 更新时间:2023-11-28 06:41:14 26 4
gpt4 key购买 nike

我必须检查一个类的成员是否为空。该类正在从 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 中读取一个浮点 vector 。我找到了如何从 json 中读取 vector :

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));
}
}

是一个好方法,还是使用重载更好?

最佳答案

这是一个很好的方法,因为它遵守 DRY .

关于c++ - 我应该使用模板来检查字符串和 vector 是否为空吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25915500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com