← Back to context

Comment by throwfaraway135

3 days ago

The GitHub project has more details: https://github.com/c3lang/c3c

Some ways C3 differs from C:

- No mandatory header files

- New semantic macro system

- Module-based namespacing

- Slices

- Operator overloading

- Compile-time reflection

- Enhanced compile-time execution

- Generics via generic modules

- "Result"-based zero-overhead error handling

- Defer

- Value methods

- Associated enum data

- No preprocessor

- Less undefined behavior, with added runtime checks in "safe" mode

- Limited operator overloading (to enable userland dynamic arrays)

- Optional pre- and post-conditions