As I reflected on this issue, it seemed to me that if a language is implemented in C ++, it may well have a mechanism for linking with C ++. As far as I remember, Java is the way through the JNI, although I donβt remember whether it goes through C ++ or plain C.
However, it seems that, in general, languages ββdo not reference C ++ and are available for C ++ only through C for various reasons.
So out of curiosity
What languages ββexist that can reference C ++ and how and to what extent?
(No credit for the aforementioned C bridge, unless done in an elegant or interesting way, e.g. Boost.Python)
: ABI , , .. EABI ( ) , ( ) EABI ( ). ABI .
++ , ABI undefined. , . , GCC , MS. ABI ( GCC).
++ . ++ ++ (, , , ABI). ABI , , ++, ++.
C . , C ABI , ++ ABI . C ++. ++ C, ++ ABI, , ++ C, ++ , . ++ C ++.
++, C. , C-. ( , DRY ), ( , !). , ++, C. ( ..)
, , ++ , - -, ++ .
, C, , C . foo foo . , Fortran, foo foo, foo, foo_ foo__.
foo
foo_
foo__
- ++ (SWIG, Boost.Python, SIP ..). C, .
- , ++. . , C- , ++ OO, . , ++ , , , vptrs, , , ++.
, , ++ , , , .
SWIG ?
Source: https://habr.com/ru/post/1704371/More articles:Is there a way to get a report of the differences in the two Jet databases (.mdb)? - databaseRails: crop images using the porch, S3 and RMagick - ruby ββ| fooobar.comUsing Enumerations as Status Indicators in C # - enumsHow do you test code that is not a model or controller - ruby ββ| fooobar.comWildcards and generic errors - javaHow can I fix this Java generic pattern error? - javaWhere and how to define a constant in Symfony? - symfony1Adobe Air file does not open - airfrom C ++ to C # - c ++Add summary information to WiI-created MSI - installerAll Articles