cppfront
cppfront copied to clipboard
A personal experimental C++ Syntax 2 -> Syntax 1 compiler
**[T](#title)itle**: fix(to_cpp1): type alias loses the **pointer** to function type. **[M](#rep)inimal reproducer** (): ```Cpp2 main: () = { f_t: type == * () -> void; static_assert(std::is_pointer_v); } ``` Commands: ```bash...
**[T](#title)itle**: refactor(to_cpp1): decentralize lowering of special member functions. **[D](#desc)escription**: Since the dawn of Cpp2 user-defined types, there have been bugs in the lowered Cpp1 special member functions. The focus of...
**[T](#title)itle**: _template-id_ with anonymous argument not parsed as such. **[D](#desc)escription**: My guess is that it breaks the code to determine whether ` void; auto main() -> int; //=== Cpp2 function...
**Describe the bug** When using a functor inside a lambda, e.g. ``` std::array arr; f: MyFunctor = ("Some initial value"); std::ranges::generate(arr, :() f&$*();); ``` This fails with some incomprehensible error...
**[T](#title)itle**: `forward` on non-deducible parameter is `move`. **[D](#desc)escription**: I inadvertently wrote the function `from: (forward q: quantity)`, thinking that would make `q` a forwarding parameter for any `quantity`. Cppfront recognizes...
**[T](#title)itle**: Wrong error message for variable left uninitialized. **[D](#desc)escription**: This change might have to do with commit 797569a67ba70289d8705ab0d57ab6b4a277c345. There need to be regression tests for all of `cppfront`'s diagnostics. **[M](#rep)inimal...
**Will your feature suggestion eliminate X% of security vulnerabilities of a given kind in current C++ code?** Yes - It will eliminate the security vulnerabilities that arise from defining the...
While toying with hello world, noticed that `cpp2:args` isn't usable with `std::ranges`. Suggesting to update definition to satisfy `std::ranges::bidirectional_range`, so that the following is possible: ```cpp2 main: (args) = {...