diff --git a/include/cppkafka/buffer.h b/include/cppkafka/buffer.h index 1c5e7c9..6e25b14 100644 --- a/include/cppkafka/buffer.h +++ b/include/cppkafka/buffer.h @@ -111,6 +111,21 @@ public: template Buffer(std::array&& data) = delete; + /** + * Constructs a buffer from a raw array + * + * \param data The the array to be used as input + */ + template + Buffer(const T(&data)[N]) + : data_(reinterpret_cast(&data[0])), size_(sizeof(T) * N) { + static_assert(sizeof(T) == sizeof(DataType), "sizeof(T) != sizeof(DataType)"); + } + + // Don't allow construction from temporary raw arrays + template + Buffer(const T(&&data)[N]) = delete; + /** * \brief Construct a buffer from a const string ref *