【发布时间】:2014-03-19 15:42:02
【问题描述】:
我有某种类型的对象,例如,std::vector<int> v;
现在,比如说,我想验证 v 是否释放了它所有的内存。
在 C++11 shrink_to_fit() 方法之前,推荐/保证的方法是 swap() 使用相同类型的空 std::vector<>。
但是,我不想指定对象的类型。我可以使用decltype 来指定类型,所以我想写这样的东西:
std::vector<int> v;
// use v....
v.swap(decltype(v)()); // Create a temporary of same type as v and swap with it.
^^
但是,上面的代码不起作用。我似乎无法使用空 ctor(在本例中)创建 decltype(v) 类型的临时对象。
有没有其他的语法来创建这样一个临时的?
【问题讨论】:
-
推荐的方法是
shrink_to_fit。 -
@chris:啊!真的。我忘记了这个方法。谢谢,我会重新编辑,但我的问题仍然存在。
标签: c++ c++11 decltype temporary-objects