# Sprint 48 Plan: C++ Semantic Raising from Core IR ## Context Sprint 48 implements the first production target backend for the new IR: modern C++. The goal is to generate reviewable, idiomatic C++ while preserving behavior contracts and memory safety intent from Rust lowering. --- ## Goals 1. Raise IR ownership semantics into RAII-centric C++ 2. Generate idiomatic type, error, and algorithmic constructs 3. Produce compilable project artifacts (headers, sources, CMake) 4. Emit explicit risk annotations where semantics are weaker than Rust --- ## Steps ### Step 709: Ownership mapping policy engine (`unique_ptr/shared_ptr/value`) (12 tests) ### Step 710: Borrow semantics to references/views strategy (10 tests) ### Step 711: Trait-to-interface/composition raising (10 tests) ### Step 712: Generics/template raising policy (10 tests) ### Step 713: Error model mapping (`Result` policy profiles) (10 tests) ### Step 714: Async mapping strategy (coroutines/task runtime profiles) (10 tests) ### Step 715: STL algorithm lifting from IR intent tags (8 tests) ### Step 716: Build artifact generator (CMake targets + layout) (8 tests) ### Step 717: `whetstone_generate_cpp_from_ir` MCP tool (8 tests) ### Step 718: Sprint 48 integration summary + regression (8 tests) --- ## Output Profiles - `safe-first`: explicit checks, conservative ownership, clearer diagnostics - `perf-first`: low-overhead defaults, reduced abstraction layers - `interop-first`: ABI-friendly shapes for mixed-language systems