diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp
index 570d0989..9c60e7b9 100644
--- a/test/src/unit-allocator.cpp
+++ b/test/src/unit-allocator.cpp
@@ -251,7 +251,7 @@ struct allocator_no_forward : std::allocator<T>
     };
 
     template <class... Args>
-    void construct(T* p, const Args& ... args)
+    void construct(T* p, const Args& ... args) noexcept(noexcept(::new (static_cast<void*>(p)) T(args...)))
     {
         // force copy even if move is available
         ::new (static_cast<void*>(p)) T(args...);