2011-02-01 7 views
2

가정하자 나는이 방법부스트 :: 바인드 참조

void foo(const std::string& s); 

내가 부스트를 만들 수 :: 기능 : 온도가 문자입니다

이 * 그는 f 전에 삭제

boost::function<void(const std::string&)> f = boost::bind(foo, temp); 
입니다 라는.

답변

5

예. 바인드는 char *가 문자열에 보관 될 수 있는지 또는 문자열로 전달되는지를 알 수 없습니다. 이 문제를 피하려면 다음을 사용하십시오.

boost::bind(foo, std::string(temp)); 

temp가 바인더로 문자열로 복사됩니다.

0

그리고 이것은 당신을 위해 컴파일 중입니까? 그것은이어야한다

boost::function<void()> f = boost::bind(foo, std::string(temp)); 
+0

그래서 내가 투표를 한 적이 있습니까? 내 대답은 정확합니다. –