[PATCH] thread.hpp: Fix redefinition of default argument
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Mar 18 15:15:53 UTC 2022
A default argument shall be defined only once.
Close #4632.
---
cpukit/include/rtems/thread.hpp | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)
diff --git a/cpukit/include/rtems/thread.hpp b/cpukit/include/rtems/thread.hpp
index cdef690740..56e301c0bc 100644
--- a/cpukit/include/rtems/thread.hpp
+++ b/cpukit/include/rtems/thread.hpp
@@ -220,6 +220,12 @@ namespace rtems
/* affinity, cpu set size is? */
};
+ template <class T>
+ inline typename std::decay<T>::type
+ decay_copy(T&& t) {
+ return std::forward<T>(t);
+ }
+
/**
* @brief Create a thread with thread attributes.
*
@@ -310,7 +316,14 @@ namespace rtems
*/
template <typename A, typename F, typename ...Args,
class = enable_if_attributes<A>>
- explicit thread(A&& attr, F&& func, Args&&... args);
+ explicit thread(A&& attr, F&& func, Args&&... args)
+ : id_(0) {
+ start_thread(
+ make_state(attr,
+ make_invoker(decay_copy(std::forward<F>(func)),
+ decay_copy(std::forward<Args>(args))...))
+ );
+ }
/**
* Move the thread id to this instance.
@@ -428,12 +441,6 @@ namespace rtems
void start_thread(state_ptr s);
};
- template <class T>
- inline typename std::decay<T>::type
- decay_copy(T&& t) {
- return std::forward<T>(t);
- }
-
template<typename F, typename... Args>
thread::thread(F&& func, Args&&... args)
: id_(0) {
@@ -445,17 +452,6 @@ namespace rtems
);
}
- template<typename A, typename F, typename... Args,
- class = thread::enable_if_attributes<A>>
- thread::thread(A&& attr, F&& func, Args&&... args)
- : id_(0) {
- start_thread(
- make_state(attr,
- make_invoker(decay_copy(std::forward<F>(func)),
- decay_copy(std::forward<Args>(args))...))
- );
- }
-
inline std::thread::id thread::get_id() const noexcept {
return std::thread::id(id_.id_);
}
--
2.34.1
More information about the devel
mailing list