【发布时间】:2011-08-04 13:40:38
【问题描述】:
我希望计算一个指针被使用了多少次。我有一张地图:
static std::map<unsigned int, unsigned int> counters;
当我想向它插入一个新值时,我会这样使用它:
template<class T>
MyClass::addPointer(T * tPtr){
counters[((unsigned int) tPtr)]++;
}
进行这样的演员阵容是否可行且安全?这不是一个昂贵的操作等?
另外,这是确保每个指针只获得一个计数的合适方法吗?
谢谢
【问题讨论】:
-
你见过Boost的
shared_ptr吗? (即将发布到 C++11) -
是的,我正在实现类似的学习目的
-
只需添加,在 64 位系统上,指针通常比
unsigned int大。所以使用void*会好很多。
标签: c++ templates pointers casting