提交 ec92f3fe 编写于 作者: T TolyaTalamanov

Apply comments

* Rename intersectMapWith -> mergeMapWith
* Remove macro
* Add r-value ref
上级 eb888316
......@@ -193,7 +193,7 @@ CallParams read<CallParams>(const cv::FileNode& fn) {
template <typename V>
std::map<std::string, V> readMap(const cv::FileNode& fn) {
std::map<std::string, V> map;
for (auto item : fn) {
for (auto&& item : fn) {
map.emplace(item.name(), read<V>(item));
}
return map;
......@@ -380,10 +380,14 @@ int main(int argc, char* argv[]) {
builder.addDummy(call_params, read<DummyParams>(node_fn));
} else if (node_type == "Infer") {
auto infer_params = read<InferParams>(node_fn);
RETHROW_WITH_MSG_IF_FAILED(
utils::intersectMapWith(infer_params.config, gconfig),
"Failed to combine global and local configs for Infer node: "
+ call_params.name);
try {
utils::mergeMapWith(infer_params.config, gconfig);
} catch (std::exception& e) {
std::stringstream ss;
ss << "Failed to merge global and local config for Infer node: "
<< call_params.name << std::endl << e.what();
throw std::logic_error(ss.str());
}
builder.addInfer(call_params, infer_params);
} else {
throw std::logic_error("Unsupported node type: " + node_type);
......
......@@ -93,21 +93,12 @@ typename duration_t::rep timestamp() {
return duration_cast<duration_t>(now.time_since_epoch()).count();
}
#define RETHROW_WITH_MSG_IF_FAILED(expr, msg) \
try { \
expr; \
} catch (const std::exception& e) { \
std::stringstream ss; \
ss << msg << "\n caused by: " << e.what(); \
throw std::logic_error(ss.str()); \
} \
template <typename K, typename V>
void intersectMapWith(std::map<K, V>& target, const std::map<K, V>& second) {
void mergeMapWith(std::map<K, V>& target, const std::map<K, V>& second) {
for (auto&& item : second) {
auto it = target.find(item.first);
if (it != target.end()) {
throw std::logic_error("Met already existing key: " + item.first);
throw std::logic_error("Error: key: " + it->first + " is already in target map");
}
target.insert(item);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册