當我取消條件表達式,該程序將失敗在Visual C++ 2008boost :: bind不能使用條件表達式嗎?
#include <iostream>
#include <boost/bind.hpp>
#include <boost/thread.hpp>
typedef boost::function<void(int, int)> vii_t;
typedef boost::function<void(int)> vi_t;
void foo(int a, int b){}
void bar(int a){}
int main(int argc, char* argv[])
{
//vi_t test= true ? boost::bind(foo, _1, 100) : boost::bind(bar, _1);
vi_t test1 = boost::bind(foo, _1, 100);
vi_t test2 = boost::bind(bar, _1);
//test(1);
test1(1);
test2(1);
return 0;
}
作爲禮儀的一點,請您避免編譯器特定的結構,如_tmain和_TCHAR。請使用'int main(int argc,char * argv [])''。 –
您能否發佈編譯器錯誤? – thiton
順便說一句,標準頭(作爲'iostream')包含在角括號中,而不是引號(即:'#include',而不是''iostream「') –