- C++相談室 part118 [転載禁止]©2ch.net
546 :デフォルトの名無しさん[]:2015/07/28(火) 09:53:48.98 ID:bQaTHCYN - 関数、ラムダ式は引数でしか関数に渡せない
これをテンプレート引数で渡す方法は 関数、ラムダ式をクラスでラッピングして渡す以外 ありませんね
|
- C++相談室 part118 [転載禁止]©2ch.net
548 :デフォルトの名無しさん[]:2015/07/28(火) 10:07:38.29 ID:bQaTHCYN - #include <iostream>
using namespace std; auto f(){cout<<"a"<<endl;} struct F{ auto operator()(){f();} }; template<typename T> struct G:public T{ auto f(){ T::operator()();} }; int main() { G<F> g; g.f(); return 0; } これがラッピングしなければならないときの例ですね
|
- C++相談室 part118 [転載禁止]©2ch.net
551 :デフォルトの名無しさん[]:2015/07/28(火) 11:38:28.77 ID:bQaTHCYN - #include <iostream>
using namespace std; auto f=[](){cout<<"a"<<endl;}; struct F{ auto operator()(){f();} }; template<typename T> struct G:public T{ auto f(){ T::operator()();} }; int main() { G<F> g; g.f(); return 0; } ラムダ式のときもできる
|