diff options
author | Ben Smith <binjimin@gmail.com> | 2017-07-19 09:22:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-19 09:22:51 -0700 |
commit | 028701aa7a80320d5e5a6e1d69b52cd940d402ea (patch) | |
tree | 1a7b6922207fc026d66e975fcda10e6712a11431 /src/interpreter.h | |
parent | a2d15d2cd095d6915cc83cbd811be8488ca0fce6 (diff) | |
download | wabt-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.h | 16 |
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); |