在std :: list添加时防止可能的异常

时间:2014-06-11 22:29:58

标签: list c++11 exception-handling

我目前有一个存储std :: size_ts的std :: list。我使用std :: list(而不是vector),因为我不需要随机访问;我只是继续追加到列表的末尾,在程序终止之前我只需要遍历一次以完成内容以执行一些清理。

如果这就是我所拥有的,我想知道列表中的添加是否会导致异常?

std::list<std::size_t> dataList;
std::size_t t= GetSomeDataEmbeddedInSizeT();
// do some things
dataList.emplace_back(t); // can this generate exceptions?

似乎异常是可能的,因为emplace_back(或其他附加API,如push_back)将构造一个新对象(就地),但由于std :: size_t就像一个原始类型,我想确认一下。如果可能存在例外情况,那么阻止这种情况发生在加时间的最佳方法是什么?我想在分配时处理异常(即GetSomeDataEmbeddedInSizeT()),这样我就可以集中所有异常处理逻辑。

感谢。

0 个答案:

没有答案