summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common.h4
-rw-r--r--src/interpreter.h16
-rw-r--r--src/intrusive-list.h6
-rw-r--r--src/tracing.h4
4 files changed, 15 insertions, 15 deletions
diff --git a/src/common.h b/src/common.h
index e728d5ab..a057f0bc 100644
--- a/src/common.h
+++ b/src/common.h
@@ -109,8 +109,8 @@ void ZeroMemory(T& v) {
// Placement construct
template <typename T, typename... Args>
-void Construct(T& placement, Args... args) {
- new (&placement) T(args...);
+void Construct(T& placement, Args&&... args) {
+ new (&placement) T(std::forward<Args>(args)...);
}
// Placement destruct
diff --git a/src/interpreter.h b/src/interpreter.h
index 5815a334..1b91f5a1 100644
--- a/src/interpreter.h
+++ b/src/interpreter.h
@@ -381,48 +381,48 @@ class Environment {
template <typename... Args>
FuncSignature* EmplaceBackFuncSignature(Args&&... args) {
- sigs_.emplace_back(args...);
+ sigs_.emplace_back(std::forward<Args>(args)...);
return &sigs_.back();
}
template <typename... Args>
Func* EmplaceBackFunc(Args&&... args) {
- funcs_.emplace_back(args...);
+ funcs_.emplace_back(std::forward<Args>(args)...);
return funcs_.back().get();
}
template <typename... Args>
Global* EmplaceBackGlobal(Args&&... args) {
- globals_.emplace_back(args...);
+ globals_.emplace_back(std::forward<Args>(args)...);
return &globals_.back();
}
template <typename... Args>
Table* EmplaceBackTable(Args&&... args) {
- tables_.emplace_back(args...);
+ tables_.emplace_back(std::forward<Args>(args)...);
return &tables_.back();
}
template <typename... Args>
Memory* EmplaceBackMemory(Args&&... args) {
- memories_.emplace_back(args...);
+ memories_.emplace_back(std::forward<Args>(args)...);
return &memories_.back();
}
template <typename... Args>
Module* EmplaceBackModule(Args&&... args) {
- modules_.emplace_back(args...);
+ modules_.emplace_back(std::forward<Args>(args)...);
return modules_.back().get();
}
template <typename... Args>
void EmplaceModuleBinding(Args&&... args) {
- module_bindings_.emplace(args...);
+ module_bindings_.emplace(std::forward<Args>(args)...);
}
template <typename... Args>
void EmplaceRegisteredModuleBinding(Args&&... args) {
- registered_module_bindings_.emplace(args...);
+ registered_module_bindings_.emplace(std::forward<Args>(args)...);
}
HostModule* AppendHostModule(string_view name);
diff --git a/src/intrusive-list.h b/src/intrusive-list.h
index 290a0483..403442f4 100644
--- a/src/intrusive-list.h
+++ b/src/intrusive-list.h
@@ -410,13 +410,13 @@ inline typename intrusive_list<T>::const_reference intrusive_list<T>::back()
template <typename T>
template <class... Args>
inline void intrusive_list<T>::emplace_front(Args&&... args) {
- push_front(new T(args...));
+ push_front(new T(std::forward<Args>(args)...));
}
template <typename T>
template <class... Args>
inline void intrusive_list<T>::emplace_back(Args&&... args) {
- push_back(new T(args...));
+ push_back(new T(std::forward<Args>(args)...));
}
template <typename T>
@@ -504,7 +504,7 @@ template <class... Args>
inline typename intrusive_list<T>::iterator intrusive_list<T>::emplace(
iterator pos,
Args&&... args) {
- return insert(pos, new T(args...));
+ return insert(pos, new T(std::forward<Args>(args)...));
}
template <typename T>
diff --git a/src/tracing.h b/src/tracing.h
index f1e741c5..dce1b89a 100644
--- a/src/tracing.h
+++ b/src/tracing.h
@@ -42,10 +42,10 @@ struct TraceScope {
TraceScope() = delete;
TraceScope(const char* method);
template<typename... Args>
- TraceScope(const char* method, const char* format, Args... args)
+ TraceScope(const char* method, const char* format, Args&&... args)
: method_(method) {
PrintEnter(method);
- fprintf(stderr, format, args...);
+ fprintf(stderr, format, std::forward<Args>(args)...);
PrintNewline();
}
~TraceScope();