![](/img/trans.png)
[英]Template class with CRITICAL_SECTION compiles but while using it got error
[英]why there is a memory error while I push a object which contain a critical_section?
class Wrap
{
CRITICAL_SECTION cs_;
public:
Wrap() { InitializeCriticalSection(&cs_); }
~Wrap() { DeteteCriticalSection(&cs_); }
Wrap & operator=(const Wrap& rhs) { return *this; }
}
int main()
{
std::vector<Wrap> v;
v.push_back(Wrap()); //Memory error.
}
請告訴我導致錯誤的原因以及如何解決。
詹姆斯的評論是對的。 嘗試這個:
class Wrap
{
CRITICAL_SECTION cs_;
public:
Wrap()
{
InitializeCriticalSection(&cs_);
}
Wrap(const Wrap&)
{
InitializeCriticalSection(&cs_);
}
~Wrap()
{
DeleteCriticalSection(&cs_);
}
};
使用Windows的調試工具中的AppVerifier可以輕松檢測到此類情況。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.