我希望計算指針正在使用的次數。我有一張地圖:投射指向int的指針/存儲指向T的指針
static std::map<unsigned int, unsigned int> counters;
當我要插入一個新值給它我使用這樣的:
template<class T>
MyClass::addPointer(T * tPtr){
counters[((unsigned int) tPtr)]++;
}
是否OK和安全的做這樣的投?這不是一個昂貴的操作等?
此外,這是一個合適的方式來確保每個指針只有一個計數?
感謝
你見過Boost的'shared_ptr'嗎? (即將推出C++ 11) – Cameron
是的,我正在實現類似的學習目的 – Freddie
只要在64位系統上添加一個指針通常比'unsigned int'大。所以使用'void *'要好得多。 –