18 · Módulos
C / C++ · Clang · C ABI
Prepara bibliotecas C17 y C++17 con Clang. C++ expone clases concretas admitidas; la propiedad nativa y los punteros o templates no admitidos requieren adaptadores explícitos. El código preparado se ejecuta sin el compilador de fuentes.
En esta página
Ejecuta localmente con el plugin y runtime correspondientes. Estos ejemplos no se ejecutan en el playground del navegador.
C / C++ / Clang · C ABI.
use plugin native::{cpp}
extern cpp from "./native_fixtures/Person.cpp" use {Person}
extern cpp fn greet(name: str) -> str {
return "Hello " + name;
}
extern cpp async fn later(value: int) -> int {
#include <chrono>
#include <thread>
std::this_thread::sleep_for(std::chrono::milliseconds(10));
return value + 1;
}
extern cpp fn call(callback: fn(int) -> int) -> int {
return callback(40);
}
let person = Person.new(name: "Ana", age: 30)
print(person.greet()) // expected: Hello Ana
print(person.birthday()) // expected: 31
person.age = 32
print(person.age) // expected: 32
print(Person.twice(21)) // expected: 42
print(greet("C++")) // expected: Hello C++
print(await later(41)) // expected: 42
print(call(|value| value + 2)) // expected: 42
Requiere la CLI o el host de Zolo; ábrelo en el playground o ejecútalo localmente.
Preparación y distribución
El empaquetado sin fuentes puede conservar artefactos externos preparados, pero no elimina dependencias de runtime o plataforma. Se cubre alojamiento en VM, native y LLVM; los bindings externos rechazan destinos WebAssembly no admitidos. La aceptación reciente cubre Windows x64. Python se verifica específicamente con CPython 3.12; otras plataformas requieren validación propia.
Consulta también