36 SecureZeroMemory(ptr, len);
37#elif defined(__STDC_LIB_EXT1__)
39 (void)memset_s(ptr, len, 0, len);
40#elif defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 25))
42 explicit_bzero(ptr, len);
43#elif defined(__OpenBSD__) || defined(__FreeBSD__)
45 explicit_bzero(ptr, len);
49 void *(*
volatile const volatile_memset)(
void *,
int, std::size_t) = std::memset;
50 volatile_memset(ptr, 0, len);
56 std::atomic_signal_fence(std::memory_order_seq_cst);