summaryrefslogtreecommitdiffstats
path: root/src/data_types.hpp
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2017-05-23 18:17:25 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2017-06-19 16:25:59 -0400
commit893b348890781dba2603ead61cf6f724350d0b47 (patch)
tree9b5f6d6c4a7a57afd7065ef8ec474a6593e93c5d /src/data_types.hpp
parent13fd8722e616dd424cd585187fb0ef65f6316023 (diff)
downloadphosphor-dbus-monitor-893b348890781dba2603ead61cf6f724350d0b47.tar.gz
phosphor-dbus-monitor-893b348890781dba2603ead61cf6f724350d0b47.zip
Add printf format utility
Add a template for obtaining a format string at build for a built-in C++ type. Change-Id: I8e5d26d4481b3ddafb5ffddbb058a1c75b3a2257 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'src/data_types.hpp')
-rw-r--r--src/data_types.hpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/data_types.hpp b/src/data_types.hpp
index af0ef68..439045e 100644
--- a/src/data_types.hpp
+++ b/src/data_types.hpp
@@ -80,6 +80,21 @@ using PropertyIndex = TupleRefMap <
const std::string,
const std::string >;
// *INDENT-ON*
+
+/** @brief Convert some C++ types to others.
+ *
+ * Remove type decorators to reduce template specializations.
+ *
+ * 1. Remove references.
+ * 2. Remove 'const' and 'volatile'.
+ */
+template <typename T> struct Downcast
+{
+ using Type = std::remove_cv_t<std::remove_reference_t<T>>;
+};
+template <typename T> using DowncastType =
+ typename Downcast<T>::Type;
+
} // namespace monitoring
} // namespace dbus
} // namespace phosphor
OpenPOWER on IntegriCloud