diff --git a/src/libcamera/include/utils.h b/src/libcamera/include/utils.h
index 3ffa6f4ea591..a2e450b35372 100644
--- a/src/libcamera/include/utils.h
+++ b/src/libcamera/include/utils.h
@@ -7,6 +7,19 @@
 #ifndef __LIBCAMERA_UTILS_H__
 #define __LIBCAMERA_UTILS_H__
 
+#include <memory>
+
 #define ARRAY_SIZE(a)	(sizeof(a) / sizeof(a[0]))
 
+namespace libcamera::utils {
+
+/* C++11 doesn't provide std::make_unique */
+template<typename T, typename... Args>
+std::unique_ptr<T> make_unique(Args&&... args)
+{
+	return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
+}
+
+} /* namespace libcamera::utils */
+
 #endif /* __LIBCAMERA_UTILS_H__ */
