Remix.run Logo
throwfaraway135 4 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

sprash 4 days ago | parent [-]

So far so good. The feature set is bit random though. Things i personally miss is function overloading, default values in parameters and tuple returns.

cardanome 4 days ago | parent [-]

> default values in parameters

C3 has you covered

https://c3-lang.org/language-fundamentals/functions/#functio...

It also has operator overloading and methods which you could use in place of function overloading I guess.