diff --git a/sdbusplus/utility/type_traits.hpp b/sdbusplus/utility/type_traits.hpp
new file mode 100644
index 0000000..c5bf965
--- /dev/null
+++ b/sdbusplus/utility/type_traits.hpp
@@ -0,0 +1,27 @@
+#pragma once
+
+#include <type_traits>
+
+namespace sdbusplus
+{
+
+namespace utility
+{
+
+/** @brief Convert T[N] to T* if is_same<Tbase,T>
+ *
+ *  @tparam Tbase - The base type expected.
+ *  @tparam T - The type to convert.
+ */
+template <typename Tbase, typename T>
+using array_to_ptr_t = typename std::conditional_t<
+        std::is_array<T>::value,
+        std::conditional_t<std::is_same<Tbase,
+                                        std::remove_extent_t<T>>::value,
+                           std::add_pointer_t<std::remove_extent_t<T>>,
+                           T>,
+        T>;
+
+} // namespace utility
+
+} // namespace sdbusplus
diff --git a/test/utility/type_traits.cpp b/test/utility/type_traits.cpp
new file mode 100644
index 0000000..3a31d06
--- /dev/null
+++ b/test/utility/type_traits.cpp
@@ -0,0 +1,24 @@
+#include <sdbusplus/utility/type_traits.hpp>
+
+int main()
+{
+    using sdbusplus::utility::array_to_ptr_t;
+
+    static_assert(
+        std::is_same<char, array_to_ptr_t<char, char>>::value,
+        "array_to_ptr_t<char, char> != char");
+
+    static_assert(
+        std::is_same<char*, array_to_ptr_t<char, char*>>::value,
+        "array_to_ptr_t<char, char*> != char*");
+
+    static_assert(
+        std::is_same<char*, array_to_ptr_t<char, char[100]>>::value,
+        "array_to_ptr_t<char, char[100]> != char*");
+
+    static_assert(
+        std::is_same<char[100], array_to_ptr_t<int, char[100]>>::value,
+        "array_to_ptr_t<int, char[100]> != char[100]");
+
+    return 0;
+}
