* Add `parse_expression` with one argument in preparation to fix#246.
* Fix issue #246: `func(n1 + n2, n3)` runs as if `func(n1, n2 + n3)`
* Simplify parser for an expression enclosed by parentheses.
* Fix the problem that the result has a decimal point when the round function, when the precision is 0.
* fix tests/test-functions.cpp:91 for round check
* add join function
* fix formatting to match single include
* add join test
* add join to documentation
* fix MSVC warning: signed/unsigned mismatch
Co-authored-by: Wim Leflere <wleflere@cochlear.com>
* add block and extend feature
* constify, code cleaning
* update single include
* add html language to readme
* clean tests
* constantify, update year
* remove unnecessary semicolons on function definitions
* add virtual destructor to base class
* fix possible loss of data warning for double to int conversion with explicit cast
* ignore Visual Studio build folder
Co-authored-by: Wim Leflere <wleflere@cochlear.com>
If exceptions are disabled via `-fno-exceptions` or `INJA_NOEXCEPTION`, the use
of try-catch is disallowed by the compiler.
This patch makes does two things:
* Gates the use of try-catch in one translation unit on the definition of
`INJA_NOEXCEPTION`.
* Make it such that translation units compiled with `-fno-exceptions` but no
`INJA_NOEXCEPTION` implicitly sets `INJA_NOEXCEPTION`.
In the specific case of `ifstream::open`, setting the exceptions bits without
exceptions enabled should trip an assertion just like INJA_ABORT. The nice
message will not be present however, but that is absent when using INJA_ABORT as
well.
After this patch, inja can be successfully included without issue.