@@ -41,8 +41,9 @@ class PipelineBuilder {
41
41
// void add_pass(const Def*, Args&&...);
42
42
template <class P , class ... Args>
43
43
void add_pass (const Def* def, Args&&... args) {
44
- append_pass_in_end ([&](PassMan& man) {
45
- auto pass = (Pass*)man.add <P>(std::forward<Args>(args)...);
44
+ append_pass_in_end ([&, def, ... args = std::forward<Args>(args)](PassMan& man) {
45
+ // auto pass = (Pass*)man.add<P>(std::forward<Args>(args)...);
46
+ auto pass = (Pass*)man.add <P>(args...);
46
47
remember_pass_instance (pass, def);
47
48
});
48
49
}
@@ -77,14 +78,14 @@ class PipelineBuilder {
77
78
// TODO: move somewhere better (for now here due to template restrictions)
78
79
template <class A , class P >
79
80
void register_pass (Passes& passes) {
80
- passes[flags_t (Axiom::Base<A>)] = [& ](World&, PipelineBuilder& builder, const Def* app) {
81
+ passes[flags_t (Axiom::Base<A>)] = [](World&, PipelineBuilder& builder, const Def* app) {
81
82
builder.add_pass <P>(app);
82
83
};
83
84
}
84
85
85
86
template <class A , class P , class Q >
86
87
void register_pass_with_arg (Passes& passes) {
87
- passes[flags_t (Axiom::Base<A>)] = [& ](World&, PipelineBuilder& builder, const Def* app) {
88
+ passes[flags_t (Axiom::Base<A>)] = [](World&, PipelineBuilder& builder, const Def* app) {
88
89
auto pass_arg = (Q*)(builder.get_pass_instance (app->as <App>()->arg ()));
89
90
builder.add_pass <P>(app, pass_arg);
90
91
};
0 commit comments