2011-06-12 3 views
2

일부 .NET API 코드를 C++ 코드로 변환해야하는 간단한 포팅 프로젝트를 진행 중입니다. GUI가 없습니다. 저는 대리인을 전환시키는 최선의 방법을 결정할 때 혼란스럽지 않습니다. 위임자를 단순히 함수 포인터로 대체 할 지 또는 Observer 패턴을 구현해야하는지 결정하는 데 도움이되는 생각을 공유하면 도움이 될 것입니다. 몇 가지 이유로 Boost와 같은 제 3 자 라이브러리를 사용할 수 없습니다. 그래서 저는 구현하기에 꽤 간단하면서도 디자인 개념에서 꽤 효율적이고 좋은 것을 고려하는 것을 선호합니다.C++에서 .NET 델리게이트를 이식하는 가장 좋은 방법

감사합니다.

+0

완전히 당신이하는 일에 달려 있습니다. – SLaks

답변

1

컴파일러는 최신입니까? C++ 0x 기능이 있습니까? 그리고 C++ 표준 라이브러리를 사용할 수 있습니까? C++ 0x가 있고 STL을 사용할 수 있으면 std :: function *은 C# 대리자와 가장 동일합니다. 그렇지 않으면 함수 포인터를 사용하거나 자신의 관찰자 패턴을 굴려야합니다.

* 부스트 기능과 동일하지만 어떤 이유로 부스트를 사용할 수 없습니다.

+0

C++ 0x는 지원되지 않습니다. – Faisal

3

Don Clugston의 Fast Delegates은 C++의 대리인에게 인기있는 선택입니다. 그것들은 단순하지는 않지만 코드를 복사하여 프로젝트에 쉽게 붙여 넣을 수 있어야합니다. 저는 C# 대리인에 대한 전문가가 아니므로 어떻게 쉽게 거기에서 이식 할 수 있을지 확신 할 수 없지만 효율적이고 대부분의 사용 사례를 다루어야합니다.

+0

더 좋다고 생각합니다. http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx – Faisal

0

I made my own event handling system. 그것은 꽤 간단합니다. 나는 C++의 기초를 따랐다. C++ 0x가 확인되면 ppl은 더 많은 자유를 누릴 수 있다고 생각합니다. 현재로서는 나는 그것이 아주 바람직하다고 생각합니다.

관련 문제