누군가이 코드를 설명해 주시겠습니까?데이터 멤버 콜백 동작에 대한 부스트 바인딩
struct Class {
boost::function<void()> member;
};
Class c;
boost::function<boost::function<void()>()> foo = boost::bind(&Class::member, &c);
boost::function<void()> bar = boost::bind(&Class::member, &c);
왜 bar
컴파일의 정의는 그것의 결과 무엇을하고 있습니까?
편집 : foo()
은 예상대로 작동하지만 c.member()
을 호출하지만 bar()
은 호출하지 않습니다.
와우. 그게 효과가 있니? 무슨 컴파일러? 나는'bar'만이 효과가 있다고 생각합니다. – ltjax
gcc 버전 4.4.5, libboost 1.42 –
반환 유형을 항상 무시할 수 있기 때문에 첫 번째 값이 정확하다고 가정하면 두 번째 값은 쉽습니다. – ltjax