2016-04-12 10 views
0

を持つ関数へのポインタのC++ベクトル私は機能を持っていると私はautoを使用することができ、特定のパラメータではなく、このようにそれへのポインタを作りたい場合:特定のパラメータ

void bar(int n){std::cout << n;} 
auto foo = std::bind(bar, 2); 

が、私がしたい場合はそれは(他bind式は互換性のない型を与えること)それはおそらくあなたがやりたいことはありませんが、あなたはvector<decltype(foo)> v;を書くことができ

std::vector<auto> v; 
+2

あなたは関数へのポインタを行っていません。バインド式を作成しています。バインド式のコンテナを(簡単に)作ることはできませんが、 'std :: function 'のベクトルを作ることはできます。 –

+0

「自動」がここで何を意味するのか知っていますか? – immibis

答えて

2

動作しないこれらのポインタのベクトルを作ります。コメントで述べたように

std::functionは、この目的のために設計されています

std::vector< std::function<void()> > v; 

v.emplace_back(foo); 
v.emplace_back(std::bind(bar, 2)); 
v.emplace_back([]{ std::cout << 2; }); 
関連する問題