Saltar al contenido

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.

44-extern-cpp.zolo
Playground
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.

Vista general de la referencia

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br