diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
index 83093676ec73..29afb121aa46 100644
--- a/src/libcamera/pipeline/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo.cpp
@@ -365,9 +365,7 @@ int UVCCameraData::init(MediaEntity *entity)
 			continue;
 		}
 
-		ctrls.emplace(std::piecewise_construct,
-			      std::forward_as_tuple(id),
-			      std::forward_as_tuple(range));
+		ctrls.emplace(id, range);
 	}
 
 	controlInfo_ = std::move(ctrls);
diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
index c99560a45cfa..b1054d307ea2 100644
--- a/src/libcamera/pipeline/vimc.cpp
+++ b/src/libcamera/pipeline/vimc.cpp
@@ -448,9 +448,7 @@ int VimcCameraData::init(MediaDevice *media)
 			continue;
 		}
 
-		ctrls.emplace(std::piecewise_construct,
-			      std::forward_as_tuple(id),
-			      std::forward_as_tuple(range));
+		ctrls.emplace(id, range);
 	}
 
 	controlInfo_ = std::move(ctrls);
