diff --git a/include/libcamera/base/details/cxx20.h b/include/libcamera/base/details/cxx20.h
new file mode 100644
index 000000000..0d6173d1b
--- /dev/null
+++ b/include/libcamera/base/details/cxx20.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2025, Ideas on Board Oy
+ *
+ * C++20 polyfills
+ */
+
+#pragma once
+
+namespace libcamera::details::cxx20 {
+
+} /* namespace libcamera::details::cxx20 */
diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build
index f28ae4d42..9b93b89c3 100644
--- a/include/libcamera/base/meson.build
+++ b/include/libcamera/base/meson.build
@@ -5,6 +5,7 @@ libcamera_base_include_dir = libcamera_include_dir / 'base'
 libcamera_base_public_headers = files([
     'bound_method.h',
     'class.h',
+    'details/cxx20.h',
     'flags.h',
     'object.h',
     'shared_fd.h',
