CEX (or C-Extended) aims to be a C++ subset in between C and C++ which takes advantage of existing C++ compilers, community and libraries while providing enough stylistic/implementation restrictions for an "idiomatic approach" to be meaningful.
#include <cmath>
struct Vec3D {
float x, y, z;
static Vec3D make(void);
Vec3D copy(void);
float abs(void);
void normalize(void);
}
...
int main(void) {
Vec3D pos1, pos2;
pos1 = Vec3D::make();
pos1.x += 3.4f;
pos1.y -= 9.8f;
pos1.normalize();
pos2 = pos1.copy();
return 0;
}