속도와 통합이라는 두 가지를 찾고 있습니다. 일반적으로 두 사람은 친숙하게 함께갑니다. 불행히도 C ++의 경우 속도와 통합을 제공하는 언어가 거의 없습니다. 나는 루아를 사용했고 끔찍하게 빨려 들었습니다. 나는 바인딩을 작성하는 데 시간을 보냈고 실제로 코드를 작성하는 데 거의 시간이 걸리지 않았습니다.
언어 기능? 스크립팅 언어를 임베드하는 것은 원래 언어에없는 동적 언어 기능을 사용할 수 있도록하는 것이 아니라 런타임에 해석 할 수 있도록하는 것 입니다. 기본적으로 기능적이라면 호스트 언어 (이 경우 C ++)와 잘 어울립니다. 그러나 놀랍게도, 설계 언어를 완전히에 대한 부분 실패 호스트 응용 프로그램에 통합되는 통합 .
공동 루틴이 필요합니까? 아니요, 공동 루틴이 필요하지 않습니다. 동적 입력이 필요합니까? 아니요, 스크립팅 언어에서 어떤 유형이 다시 나올지 알아야 합니다. 기존의 모든 코드가 매우 강력한 타이핑을 기반으로 구축되었으므로 스크립트 코드도이를 존중할 수 있기를 바랍니다. 가비지 수집이 필요합니까? 아니요, 제 유형은 이미 자체 리소스를 관리하며 결정 론적 파괴를 원합니다. 내가 가고 싶니? 아니요. 예외를 던지고 싶습니다.
내가 찾은 문제는 기본적으로 기존의 모든 스크립팅 언어가 C ++이 아닌 C를 확장하도록 설계되었으며 여러 가지 방법으로 C ++ 모델을 올바르게 지원하지 않으며이 외에도 완전히 다른 의미가 있습니다. 어떻게 지구상에서 shared_ptr
자동 결정 론적 파괴 인 가비지 수집 환경으로 변환 할 것인가? 원하는 랩핑 라이브러리를 작성할 수 있으며 확장하려는 언어와 호환되지 않는 기본 언어 의미를 변경하지 않습니다. 이것이 void*
올바른 유형 인지 어떻게 확인할 수 있습니까? 상속을 어떻게 처리 할 수 있습니까? 예외를 던지고 잡는 방법은 무엇입니까? 작동하지 않습니다.
C ++에 대한 좋은 스크립팅 언어는 정적으로 유형이 지정되고 의미 론적이며 결정 론적으로 파괴되며 예외를 throw 및 catch하고 내 소멸자 / 생성자 / 복사 생성자를 존중합니다. 바인딩하고 쉽게 내 원래 의미를 모두 지원합니다.