Don't track construction when using boost::tuple

Because it doesn't quiet work on C++11 compilers onwards.
This commit is contained in:
Daniel James
2017-04-18 10:14:26 +01:00
parent cafd236a18
commit 7a0a598649
3 changed files with 152 additions and 13 deletions
+6 -6
View File
@@ -392,10 +392,10 @@ template <class T> class allocator1
}
#if BOOST_UNORDERED_CXX11_CONSTRUCTION
template <typename... Args> void construct(T* p, Args&&... args)
template <typename U, typename... Args> void construct(U* p, Args&&... args)
{
detail::tracker.track_construct((void*)p, sizeof(T), tag_);
new (p) T(boost::forward<Args>(args)...);
detail::tracker.track_construct((void*)p, sizeof(U), tag_);
new (p) U(boost::forward<Args>(args)...);
}
#else
void construct(T* p, T const& t)
@@ -405,10 +405,10 @@ template <class T> class allocator1
}
#endif
void destroy(T* p)
template <typename U> void destroy(U* p)
{
detail::tracker.track_destroy((void*)p, sizeof(T), tag_);
p->~T();
detail::tracker.track_destroy((void*)p, sizeof(U), tag_);
p->~U();
// Work around MSVC buggy unused parameter warning.
ignore_variable(&p);