簡體   English   中英

是否有不支持使用C ++庫的高級語言?

[英]Are there any high level language that don't support using C++ libraries?

是否有不支持使用C ++庫的高級語言?

使用其他高級語言的C ++庫有兩個主要障礙:

  • 如果庫是OO,則需要能夠使用調用語言創建C ++對象-這並不容易。

  • C ++實現使用一種稱為“名稱處理”的技術來確保類型安全的鏈接。 不幸的是,名稱修飾沒有標准,因此在不同的C ++實現之間甚至不容易調用C ++代碼。

因此,您的問題的答案是,大多數HLL都會在調用C ++代碼時遇到問題。 他們當然也可能在調用任何其他語言時遇到問題-除了即席的,平台特定的語言之外,語言之間實際上沒有標准化的二進制接口。

我想不出任何能夠直接使用C ++庫的語言。 即使使用C ++進行操作也可能很棘手(如果該庫是使用與您使用的編譯器不同的編譯器進行編譯的)

當然,如果您編寫某種包裝器(用於特定庫的包裝器或用於公開特定類型的某種綁定庫),則任何語言都可以使用C ++庫。 但是直接按原樣進行,無需任何額外工作? 我認為除C ++之外,沒有其他語言可以做到這一點。

這有點反面,但是許多流行的高級語言可以通過swig( http://swig.org/ )綁定到為其創建的C ++庫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM