From 6b2545224752be74de35166c3dcda9ff5bdb79e3 Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sat, 17 Jan 2026 16:33:36 +0000 Subject: Add C++ interop support. --- examples/cpp_interop.zc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 examples/cpp_interop.zc (limited to 'examples') diff --git a/examples/cpp_interop.zc b/examples/cpp_interop.zc new file mode 100644 index 0000000..2f2e033 --- /dev/null +++ b/examples/cpp_interop.zc @@ -0,0 +1,36 @@ + +include +include +include + +// C++ helper functions in raw blocks +raw { + std::vector cpp_make_vector(int a, int b, int c) { + return {a, b, c}; + } + + int cpp_sum_vector(std::vector& vec) { + int sum = 0; + for (int x : vec) sum += x; + return sum; + } + + void cpp_print(const char* msg) { + std::cout << "[C++] " << msg << std::endl; + } +} + +fn main() { + "=> Zen C + C++ interop."; + + cpp_print("Hello from C++!"); + + var vec = cpp_make_vector(10, 20, 30); + var result = cpp_sum_vector(vec); + "Sum of C++ vector: {result}"; + + raw { + std::string s = "C++ string: works!"; + std::cout << s << std::endl; + } +} -- cgit v1.2.3