diff --git a/sys/cpp11-compat/include/riot/chrono.hpp b/sys/cpp11-compat/include/riot/chrono.hpp index 46a89fa51e36c6133bfb341b3b3372ee09f188f8..bc2d902bf61b938b1798a4ba9e01ac039688fe40 100644 --- a/sys/cpp11-compat/include/riot/chrono.hpp +++ b/sys/cpp11-compat/include/riot/chrono.hpp @@ -52,7 +52,7 @@ class time_point { /** * @brief Create time point from timex_t struct. */ - inline time_point(timex_t&& tp) : m_handle(tp) {} + explicit inline time_point(timex_t&& tp) : m_handle(tp) {} /** * @brief Use default copy constructor. */ diff --git a/sys/cpp11-compat/include/riot/thread.hpp b/sys/cpp11-compat/include/riot/thread.hpp index cba69852d27396623337929701ccb0e0ffee1e6a..3f0dca01d5ffecc027a85936fea5e1051bc31e36 100644 --- a/sys/cpp11-compat/include/riot/thread.hpp +++ b/sys/cpp11-compat/include/riot/thread.hpp @@ -27,6 +27,7 @@ #include "time.h" #include "thread.h" +#include <array> #include <tuple> #include <atomic> #include <memory> @@ -65,7 +66,7 @@ struct thread_data { /** @cond INTERNAL */ std::atomic<unsigned> ref_count; kernel_pid_t joining_thread; - char stack[stack_size]; + std::array<char, stack_size> stack; /** @endcond */ }; @@ -106,7 +107,7 @@ public: /** * @brief Create a thread id from a native handle. */ - inline thread_id(kernel_pid_t handle) : m_handle{handle} {} + explicit inline thread_id(kernel_pid_t handle) : m_handle{handle} {} /** * @brief Comparison operator for thread ids. @@ -164,7 +165,7 @@ namespace this_thread { /** * @brief Access the id of the currently running thread. */ -inline thread_id get_id() noexcept { return thread_getpid(); } +inline thread_id get_id() noexcept { return thread_id{thread_getpid()}; } /** * @brief Yield the currently running thread. */ @@ -286,7 +287,7 @@ public: /** * @brief Returns the id of a thread. */ - inline id get_id() const noexcept { return m_handle; } + inline id get_id() const noexcept { return thread_id{m_handle}; } /** * @brief Returns the native handle to a thread. */ @@ -345,7 +346,7 @@ thread::thread(F&& f, Args&&... args) unique_ptr<func_and_args> p( new func_and_args(m_data.get(), forward<F>(f), forward<Args>(args)...)); m_handle = thread_create( - m_data->stack, stack_size, THREAD_PRIORITY_MAIN - 1, 0, + m_data->stack.data(), stack_size, THREAD_PRIORITY_MAIN - 1, 0, &thread_proxy<func_and_args>, p.get(), "riot_cpp_thread"); if (m_handle >= 0) { p.release();