C++ Technical Space

Table of Contents

C++ is a general-purpose, statically-typed, compiled programming language, an extension of C with classes and (in modern revisions) templates, RAII, and a large standard library. ORE Studio's C++ code is built with CMake and vcpkg, targets Qt 6 for its desktop UI, and compiles against Boost and other vcpkg-managed dependencies.

The C++ technical space is ORE Studio's primary codegen TS: it generates the majority of the boilerplate across the domain, repository, messaging, service, and UI layers. Every entity that traverses the full stack (currency, country, etc.) produces projections in this TS across multiple components.

This page's role is to capture the domain concepts of the C++ technical space — what it is, its Parts, its SRPPs, and how its facets map onto components — in prose, for a human reader coming to this TS for the first time. It does not enumerate facets or archetypes: for that inventory — every facet, its archetype count, and a link to its literate source — see ores.cpp, the generated TS inventory page.

For the MASD concepts (TS, Part, Facet, Archetype, SRPP) see MASD, Physical Space, and Facet. For the component topology see System Model.

Parts

The C++ TS has two parts, following the canonical C++ include/src split:

Part Directory Contains
include/ include/<namespace>/ Public API, forward declarations, inline templates
src/ src/<namespace>/ Definitions, non-inline implementations

Each facet projects into one or both parts: declarations under include/<namespace>/, definitions under src/<namespace>/.

Component mapping

The C++ TS's projections distribute across components according to the component architecture:

Facet Typical target component
Domain ores.<group>.api
Repository ores.<group>.core
Protocol ores.<group>.api (message struct definitions)
NATS (handler, sub-registrar, eventing, event-registrar) ores.<group>.core
Service ores.<group>.core
Service-app ores.<group>.service
Qt ores.qt.<group>
Component Every component
Enum ores.<group>.api
Field-group ores.<group>.api
Generator ores.<group>.api

See also

Emacs 29.3 (Org mode 9.6.15)