diff --git a/src/LocateUri.cxx b/src/LocateUri.cxx
index c534a6db7..716318097 100644
--- a/src/LocateUri.cxx
+++ b/src/LocateUri.cxx
@@ -48,15 +48,14 @@ LocateFileUri(const char *uri, const Client *client
 			/* this path was relative to the music
 			   directory */
 			// TODO: don't use suffix.data() (ok for now because we know it's null-terminated)
-			return LocatedUri(LocatedUri::Type::RELATIVE,
-					  suffix.data());
+			return {LocatedUri::Type::RELATIVE, suffix.data()};
 	}
 #endif
 
 	if (client != nullptr)
 		client->AllowFile(path);
 
-	return LocatedUri(LocatedUri::Type::PATH, uri, std::move(path));
+	return {LocatedUri::Type::PATH, uri, std::move(path)};
 }
 
 static LocatedUri
@@ -90,8 +89,7 @@ LocateAbsoluteUri(UriPluginKind kind, const char *uri
 		const auto suffix = storage->MapToRelativeUTF8(uri);
 		if (suffix.data() != nullptr)
 			// TODO: don't use suffix.data() (ok for now because we know it's null-terminated)
-			return LocatedUri(LocatedUri::Type::RELATIVE,
-					  suffix.data());
+			return {LocatedUri::Type::RELATIVE, suffix.data()};
 	}
 
 	if (kind == UriPluginKind::STORAGE &&
@@ -99,7 +97,7 @@ LocateAbsoluteUri(UriPluginKind kind, const char *uri
 		throw std::invalid_argument("Unsupported URI scheme");
 #endif
 
-	return LocatedUri(LocatedUri::Type::ABSOLUTE, uri);
+	return {LocatedUri::Type::ABSOLUTE, uri};
 }
 
 LocatedUri
diff --git a/src/lib/curl/Escape.cxx b/src/lib/curl/Escape.cxx
index ab832eac9..e6912b6d7 100644
--- a/src/lib/curl/Escape.cxx
+++ b/src/lib/curl/Escape.cxx
@@ -60,7 +60,7 @@ CurlUnescape(CURL *curl, StringView src) noexcept
 	int outlength;
 	CurlString tmp(curl_easy_unescape(curl, src.data, src.size,
 					  &outlength));
-	return std::string(tmp.c_str(), outlength);
+	return {tmp.c_str(), size_t(outlength)};
 }
 
 std::string
diff --git a/src/pcm/LibsamplerateResampler.cxx b/src/pcm/LibsamplerateResampler.cxx
index 6b9c23d33..a09189163 100644
--- a/src/pcm/LibsamplerateResampler.cxx
+++ b/src/pcm/LibsamplerateResampler.cxx
@@ -140,8 +140,7 @@ LibsampleratePcmResampler::Resample2(ConstBuffer<float> src)
 		throw FormatRuntimeError("libsamplerate has failed: %s",
 					 src_strerror(result));
 
-	return ConstBuffer<float>(data.data_out,
-				  data.output_frames_gen * channels);
+	return {data.data_out, size_t(data.output_frames_gen * channels)};
 }
 
 ConstBuffer<void>