summaryrefslogtreecommitdiff
path: root/src/interpreter.h
diff options
context:
space:
mode:
authorBen Smith <binjimin@gmail.com>2017-07-19 09:22:51 -0700
committerGitHub <noreply@github.com>2017-07-19 09:22:51 -0700
commit028701aa7a80320d5e5a6e1d69b52cd940d402ea (patch)
tree1a7b6922207fc026d66e975fcda10e6712a11431 /src/interpreter.h
parenta2d15d2cd095d6915cc83cbd811be8488ca0fce6 (diff)
downloadwabt-028701aa7a80320d5e5a6e1d69b52cd940d402ea.tar.gz
wabt-028701aa7a80320d5e5a6e1d69b52cd940d402ea.tar.bz2
wabt-028701aa7a80320d5e5a6e1d69b52cd940d402ea.zip
Properly forward argument packs (#578)
The pattern should be ``` template <typename... Args> void foo(Args&&... args) { bar(std::forward<Args>(args)...); } ```
Diffstat (limited to 'src/interpreter.h')
-rw-r--r--src/interpreter.h16
1 files changed, 8 insertions, 8 deletions
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);