The positions of pointers *
and references &
are still incorrect, and I still see many uses of C-style casts. Please change those before submitting for re-review.
If you have to do this ugly Makefile trick then let's just keep it the way it is for now.
You can keep the _BOOL
variable.
I would say I would do it as
if constexpr (IRRT_DEBUG_ASSERT_BOOL) {
if ((lhs) != (rhs)) {
raise_debug_assert(SizeT, "LHS = {0}. RHS = {1}",…
constexpr
indicates that this is to be a compile-time constant, and implies inline
. This ensures that the variable does not escape this compilation unit and prevents ODR violations. AFAIK…
They are functionally the same, but you should use modern C++ regardless.
I personally use LLVM, as Microsoft's opening brace style makes the source code unnecessarily bloated.
Couldn't you just set the exceptions while loading the IRRT? Since IRRT depends on the exception specifications anyways.
Why is this necessary? Why not have multiple IRRT C++ files and link the LLVM bitcode at build-time?
Fold this into use nac3core::{codegen::{...}, ...}
Probably best to split original.hpp
into separate files, since you're already doing that.
Why Microsoft style? Wouldn't this introduce inconsistencies with demo.c
where opening braces are on the same line as the statement?