これは私の最初の質問です。私はあきらめて、これには手巻きファンクターを使用しますが、それがどのように行われることになっているのか興味があります。以下の不自然な例は、ベクトル内のすべてのベクトルのサイズを 9 に変更することを目的としており、それらを null で埋めます。示された行により、MinGW GCC 4.5.0 は多くのテンプレート エラーを吐き出します。いくつかの異なる順列を試しましたが、「最も正しい」と思われるコードのみを以下に掲載しました。それはどのように書かれるべきですか?resize の 2 つの引数バージョンを保持したいことに注意してください。
#include <vector>
using std::vector;
#include <algorithm>
using std::for_each;
#include <tr1/functional>
using std::tr1::bind;
using std::tr1::placeholders::_1;
int main() {
vector<vector<void *> > stacked_vector(20);
for_each(stacked_vector.begin(),stacked_vector.end(),
bind(&std::vector<void *>::resize,_1,9,0/*NULL*/)); // voluminous error output
return 0;
}
ご意見をお寄せいただきありがとうございます。