diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index 976d043..9668e5d 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -114,7 +114,7 @@
     return nullptr;
 }
 
-static const Message* formatMessage(const std::string_view& messageID)
+static const Message* formatMessage(std::string_view messageID)
 {
     // Redfish MessageIds are in the form
     // RegistryName.MajorVersion.MinorVersion.MessageKey, so parse it to find
diff --git a/redfish-core/include/privileges.hpp b/redfish-core/include/privileges.hpp
index 6227681..08e554a 100644
--- a/redfish-core/include/privileges.hpp
+++ b/redfish-core/include/privileges.hpp
@@ -110,7 +110,7 @@
      * @return               None
      *
      */
-    bool setSinglePrivilege(const std::string_view privilege)
+    bool setSinglePrivilege(std::string_view privilege)
     {
         for (size_t searchIndex = 0; searchIndex < privilegeNames.size();
              searchIndex++)
diff --git a/redfish-core/include/redfish_aggregator.hpp b/redfish-core/include/redfish_aggregator.hpp
index c2c2e1d..080e67e 100644
--- a/redfish-core/include/redfish_aggregator.hpp
+++ b/redfish-core/include/redfish_aggregator.hpp
@@ -44,7 +44,7 @@
 // Determines if the passed property contains a URI.  Those property names
 // either end with a case-insensitive version of "uri" or are specifically
 // defined in the above array.
-inline bool isPropertyUri(const std::string_view propertyName)
+inline bool isPropertyUri(std::string_view propertyName)
 {
     return boost::iends_with(propertyName, "uri") ||
            std::binary_search(nonUriProperties.begin(), nonUriProperties.end(),
diff --git a/redfish-core/include/registries.hpp b/redfish-core/include/registries.hpp
index da8fa85..03e8bc5 100644
--- a/redfish-core/include/registries.hpp
+++ b/redfish-core/include/registries.hpp
@@ -61,7 +61,7 @@
 {
     std::string ret;
     size_t reserve = msg.size();
-    for (const std::string_view& arg : messageArgs)
+    for (std::string_view arg : messageArgs)
     {
         reserve += arg.size();
     }
@@ -102,7 +102,7 @@
     std::string msg =
         redfish::registries::fillMessageArgs(args, entry.second.message);
     nlohmann::json jArgs = nlohmann::json::array();
-    for (const std::string_view arg : args)
+    for (std::string_view arg : args)
     {
         jArgs.push_back(arg);
     }
diff --git a/redfish-core/include/resource_messages.hpp b/redfish-core/include/resource_messages.hpp
index 3153935..309b293 100644
--- a/redfish-core/include/resource_messages.hpp
+++ b/redfish-core/include/resource_messages.hpp
@@ -11,7 +11,7 @@
 
 inline nlohmann::json
     getLogResourceEvent(redfish::registries::resource_event::Index name,
-                        std::span<const std::string_view> args)
+                        std::span<std::string_view> args)
 {
     size_t index = static_cast<size_t>(name);
     if (index >= redfish::registries::resource_event::registry.size())
