chapel
chapel copied to clipboard
[Feature Request]: direct support for C++ interoperability
Currently, Chapel has pretty good C interoperability (through extern
blocks, c2chapel
, extern
and export
procs/vars). It comes up semi-regularly that one needs to work with a C++ library. However, there are quite a few things that might be needed for C++ interoperability.
Some specific points to get ideas going:
- Calling a function that happens to be C++ but doesn't rely on C++ features?
- Calling overloaded C++ functions?
- C++ methods callable as Chapel method calls?
- Is calling
virtual
methods important? - What about RAII behavior of C++ objects types used from Chapel?
- Instantiating C++ templates with Chapel types / through interop?
This issue is a place to collect information about what features would be needed in practical cases. If you run into a practical case where better C++ interop would have helped, leave a comment here summarizing the features you would use.