From d137c28ccc212067e43bfe17ac8328bec0f944fe Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Thu, 13 Oct 2016 10:11:30 +0200 Subject: Diable static_assert in secure_allocator in MSVC debug --- src/lib/base/secmem.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/lib') diff --git a/src/lib/base/secmem.h b/src/lib/base/secmem.h index ff76e9429..a99132507 100644 --- a/src/lib/base/secmem.h +++ b/src/lib/base/secmem.h @@ -24,7 +24,16 @@ template class secure_allocator { public: + /* + * Assert exists to prevent someone from doing something that will + * probably crash anyway (like secure_vector where ~non_POD_t + * deletes a member pointer which was zeroed before it ran). + * MSVC in debug mode uses non-integral proxy types in container types + * like std::vector, thus we disable the check there. + */ +#if !defined(_ITERATOR_DEBUG_LEVEL) || _ITERATOR_DEBUG_LEVEL == 0 static_assert(std::is_integral::value, "secure_allocator supports only integer types"); +#endif typedef T value_type; -- cgit v1.2.3