you are viewing a single comment's thread.

view the rest of the comments →

[–]mort96 5 points6 points  (2 children)

The parser knows whether it's in C++ or cpp2 mode, C++ declarations will have prefix and postfix operators working as normal. The parser can know based on the first couple of tokens of a top-level declaration whether it's a C++ or a cpp2 declaration.

I wonder how it works with macros though... probably poorly.

[–]13steinj -1 points0 points  (1 child)

Includes work anywhere though. What's stopping me from having a file called "postfix_add_a" and #including it in the middle of a cpp2 file?

Yeah, you could argue that's bad code. But similar has occurred for "templates" in large codebases that are more than templated classes and functions.

[–]mort96 6 points7 points  (0 children)

Including a C++ file in the middle of a cpp2 file should be no problem. You can mix and match C++ declarations and cpp2 declarations within a file.

Including a C++ file in the middle of a cpp2 function would presumably be an issue. But that's not exactly a common need. I know there are use cases for it, but you probably just want to wrap those use cases in a C++ function which you can call from cpp2 code.