2008-11-03 3 views
4

"functionoids"에 대한 설명을 읽었습니다 here. 그들은 Boost :: function과 Boost :: bind의 가난한 사람 버전처럼 보입니다. 내가 놓친 게 있니? 이미 Boost를 사용하고 있다면 좋은 이유가 있을까요?"기능 물"?

+0

나는 거기에 하나의 장소, 사실 overridable 호출 메서드를 사용하여 functionoids를 사용하여 유혹 될 수 있다고 생각 ... 부스트 또는 표준을 사용하는 API가 될 수 있습니다 : : 기능 또는 가능하지 않을 수도 있습니다 API를 위해 Lua와 같은 스크립팅 언어에 묶여 있어야합니다. Functionoid 접근법은 유연하지는 않지만 유연하지만 편리하지는 않지만 boost :: function 또는 std :: function과 같은 정교한 것보다 API 및 모듈 경계와 다른 컴파일러에서 사용하기가 더 쉽습니다 (적어도 함수 포인터에서 한 단계 올라간다. – stinky472

답변

3

내 투표 :: 기능을 TR1에가는 FQA 대답을 참조하십시오.

functionoids 또는 tr1/boost::function는 진화되는 염기를 나타낸다. 공통 인터페이스 펑쳐의 한계는 OO 패러다임이 다른 유형을 나타내며 템플릿 함수에만 전달 될 수 있기 때문입니다 (사용자가 파생 된 기본 클래스를 제공하지 않는 한). type erasure techniquetr1::function를 이용하여 실제로

은이 한계를 극복 : 그들은 최고의 동적 전략 클래스을 구현하는 데 사용됩니다.