で使っboost::bind
てみますstd::vector<>::resize
。
ただし、次のコードはコンパイルされません。
#include <boost/bind.hpp>
#include <vector>
using namespace boost;
int main(){
typedef std::vector<double> type;
type a;
bind(&type::resize, _1, 2)(a);
return 0;
}
それで、どうすればこれを行うことができますか?
ありがとう!
ブースト バージョン 1.53 gcc バージョン 4.8 または 4.6
*編集: *上記のコードは -std=c++11 で動作します。実際、私の元の問題はこれです:
#include <boost/bind.hpp>
#include <blitz/array.h>
#include <vector>
using namespace boost;
using namespace blitz;
int main(){
typedef Array<double, 1> type;
type a;
//a.resize(4) is ok;
bind(&type::resize, _1, 2)(a);
return 0;
}
私のコンパイルコマンドは次のとおりです: g++ t.cpp -I path/include/ -std=c++11 -L path/lib/ -l blitz