- updated docs a bit
- version bump to 1.1.3
diff --git a/doc/html_generated/commandline.html b/doc/html_generated/commandline.html
index 98e0814..4ad25cc 100644
--- a/doc/html_generated/commandline.html
+++ b/doc/html_generated/commandline.html
@@ -44,6 +44,7 @@
| ```-nt``` ```--no-throw=<bool>``` | Skips [**exceptions-related assertion**](assertions.html#exceptions) checks |
| ```-ne``` ```--no-exitcode=<bool>``` | Always returns a successful exit code - even if a test case has failed |
| ```-nr``` ```--no-run=<bool>``` | Skips all runtime **doctest** operations (except the test registering which happens before the program enters ```main()```). This is useful if the testing framework is integrated into a client codebase which has [**provided the ```main()``` entry point**](main.html) and the user wants to skip running the tests and just use the program |
+| ```-nv``` ```--no-version=<bool>``` | Omits the framework version in the output |
| ```-nc``` ```--no-colors=<bool>``` | Disables colors in the output |
| ```-nb``` ```--no-breaks=<bool>``` | Disables breakpoints in debuggers when an assertion fails |
| ```-npf``` ```--no-path-filenames=<bool>``` | Paths are removed from the output when a filename is printed - useful if you want the same output from the testing framework on different environments |
diff --git a/doc/html_generated/configuration.html b/doc/html_generated/configuration.html
index bd5dc88..2bf7532 100644
--- a/doc/html_generated/configuration.html
+++ b/doc/html_generated/configuration.html
@@ -18,6 +18,9 @@
- [**```DOCTEST_CONFIG_USE_IOSFWD```**](#doctest_config_use_iosfwd)
- [**```DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION```**](#doctest_config_no_comparison_warning_suppression)
- [**```DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS```**](#doctest_config_no_unprefixed_options)
+- [**```DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS```**](#doctest_config_no_try_catch_in_asserts)
+- [**```DOCTEST_CONFIG_NO_EXCEPTIONS```**](#doctest_config_no_exceptions)
+- [**```DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS```**](#doctest_config_no_exceptions_but_with_all_asserts)
- [**```DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE```**](#doctest_config_assertion_parameters_by_value)
- [**```DOCTEST_CONFIG_COLORS_NONE```**](#doctest_config_colors_none)
- [**```DOCTEST_CONFIG_COLORS_WINDOWS```**](#doctest_config_colors_windows)
@@ -100,6 +103,48 @@
This should be defined only in the source file where the library is implemented (it's relevant only there).
+### **```DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS```**
+
+This will remove all ```try``` / ```catch``` sections from:
+
+- the [normal asserts](assertions.html#expression-decomposing-asserts)
+- the [binary and unary asserts](assertions.html#binary-and-unary-asserts)
+
+so exceptions thrown while evaluating the expression in an assert will terminate the current test case.
+
+This can be defined both globally and in specific source files only.
+
+### **```DOCTEST_CONFIG_NO_EXCEPTIONS```**
+
+This will remove everything that uses exceptions from the framework - it is also auto detectable for some compilers (GCC, Clang) if exceptions are disabled with ```-fno-exceptions```. For MSVC ```_HAS_EXCEPTIONS``` cannot be used for auto detecting because it is defined in system headers instead of as a project define - and doctest will not include a header just for that.
+
+What gets changed:
+
+- asserts that evaluate the expression in a ```try``` / ```catch``` section no longer evaluate in such a context
+- ```REQUIRE``` macros are gone (undefined)
+- [exception macros](assertions.html#exceptions) are gone (undefined)
+- the ```abort-after``` option won't be fully working because an exception is used to terminate test cases
+
+The ```REQUIRE``` family of asserts uses exceptions to terminate the current test case when they fail. An exception is used instead of a simple ```return;``` because asserts can be used not only in a test case but also in functions called by a test case.
+
+[**```DOCTEST_CONFIG_NO_EXCEPTIONS```**](#doctest_config_no_exceptions) implies [**```DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS```**](#doctest_config_no_try_catch_in_asserts)
+
+If you wish to use asserts that deal with exceptions and only sometimes build without exceptions - check the [**```DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS```**](#doctest_config_no_exceptions_but_with_all_asserts) config option.
+
+This should be defined globally.
+
+
+### **```DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS```**
+
+When building with no exceptions (see [**```DOCTEST_CONFIG_NO_EXCEPTIONS```**](#doctest_config_no_exceptions)) ```REQUIRE``` asserts and the ones about dealing with exceptions are gone.
+
+If however you want your code to use these assertions and only sometimes build without exceptions - then using this config will be of help. The effects of using it are the following:
+
+- ```REQUIRE``` asserts are not gone - but they act like ```CHECK``` asserts - when one of them fails the whole test case will be marked as failed but will not be exited immediately
+- the [asserts for dealing with exceptions](assertions.html#exceptions) are turned into a no-op (instead of being totally undefined)
+
+This can be defined both globally and in specific source files only.
+
### **```DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE```**
This option forces all doctest asserts to copy by value the expressions they are given instead of binding them to const references. This might be useful to avoid ODR-usage of static constants (which might lead to linker errors with g++/clang):
diff --git a/doc/html_generated/contributing.html b/doc/html_generated/contributing.html
index 372eee8..00aa286 100644
--- a/doc/html_generated/contributing.html
+++ b/doc/html_generated/contributing.html
@@ -5,9 +5,7 @@
## Contributing
-Support the development of the project with donations! There is a list of planned features which are all important and big - see the [**roadmap**](roadmap.html). I took a break from working in the industry to make open source software so every cent is a big deal.
-
-If you work for a company using doctest or have the means to do so, please consider financial support.
+This library is free, and will stay free but needs your support to sustain its development. There are lots of [**new features**](roadmap.html) and maintenance to do. If you work for a company using **doctest** or have the means to do so, please consider financial support.
[![Pledgie](https://pledgie.com/campaigns/31280.png)](https://pledgie.com/campaigns/31280)
[![Patreon](https://cloud.githubusercontent.com/assets/8225057/5990484/70413560-a9ab-11e4-8942-1a63607c0b00.png)](http://www.patreon.com/onqtam)
diff --git a/doc/html_generated/faq.html b/doc/html_generated/faq.html
index 7888a4d..bd9283b 100644
--- a/doc/html_generated/faq.html
+++ b/doc/html_generated/faq.html
@@ -97,9 +97,7 @@
### Does the framework use exceptions?
-Yes. The ```REQUIRE``` family of asserts uses exceptions to terminate the current test case when they fail. An exception is used instead of a simple ```return;``` because asserts can be used not only in a test case but also in functions called by a test case.
-
-It hasn't been tested yet what happens when compiling with ```-fno-exceptions```.
+Yes - but they can be disabled - see the [**```DOCTEST_CONFIG_NO_EXCEPTIONS```**](configuration.html#doctest_config_no_exceptions) config identifier.
### Why do I get compiler errors in STL headers when including the doctest header?
diff --git a/doc/html_generated/features.html b/doc/html_generated/features.html
index 425ec4e..985e8a0 100644
--- a/doc/html_generated/features.html
+++ b/doc/html_generated/features.html
@@ -12,13 +12,15 @@
## Unintrusive (transparent):
- everything testing-related can be removed from the binary executable by defining the [**```DOCTEST_CONFIG_DISABLE```**](configuration.html#doctest_config_disable) identifier
-- very small and easy to integrate - single header - **extremely** low footprint on compile times - see the [**benchmarks**](benchmarks.html)
+- very small and easy to integrate - single header
+- **Extremely** low footprint on compile times - [**below 10ms**](benchmarks.html#cost-of-including-the-header) of compile time overhead for including the header in a source file
+- The [**fastest possible**](benchmarks.html#cost-of-an-assertion-macro) assertion macros - 50k asserts can compile for under 30 seconds (even under 10 sec)
- doesn't drag any headers when included (except for in the translation unit where the library gets implemented)
- everything is in the ```doctest``` namespace (and the implementation details are in a nested ```detail``` namespace)
- all macros have prefixes - some by default have unprefixed versions as well but that is optional - see [**configuration**](configuration.html)
- 0 warnings even with the most aggresive flags (on all tested compilers!!!)
- ```-Weverything -pedantic``` for **clang**
- - ```-Wall -Wextra -pedantic``` and **>> over 50 <<** other warnings **not** covered by these flags for **GCC**!!! - see [**here**](../../scripts/common.cmake#L59)
+ - ```-Wall -Wextra -pedantic``` and **>> over 50 <<** other warnings **not** covered by these flags for **GCC**!!! - see [**here**](../../scripts/common.cmake#L77)
- ```/W4``` for **MSVC** (```/Wall``` is too much there - even their own headers produce **thousands** of warnings with that option)
- doesn't error on unrecognized [**command line**](commandline.html) options and supports prefixes for interop with client command line parsing
- can set options [**procedurally**](main.html) and not deal with passing ```argc```/```argv``` from the command line
@@ -28,7 +30,7 @@
- Standards compliant **C++98** code - should work with any **C++98** compiler
- tested with **GCC**: **4.4**, **4.5**, **4.6**, **4.7**, **4.8**, **4.9**, **5**, **6**
-- tested with **Clang**: **3.4**, **3.5**, **3.6**, **3.7**, **3.8**
+- tested with **Clang**: **3.4**, **3.5**, **3.6**, **3.7**, **3.8**, **3.9**
- tested with **MSVC**: **2008**, **2010**, **2012**, **2013**, **2015**
- per-commit tested on **travis** and **appveyor** CI services
- warnings as errors even on the most aggressive warning levels - see [**here**](../../scripts/common.cmake#L71)
@@ -39,6 +41,17 @@
- tests are ran in more than **200** different configurations on UNIX (Linux + OSX) on **travis** CI
- tests are ran in a total of **20** different configurations on Windows on **appveyor** CI
+---------------
+
+This allows the library to be used in more ways than any other - tests can be written directly in the production code!
+
+- This makes the barrier for writing tests **much lower** - you don't have to: **1.** make a separate source file **2.** include a bunch of stuff in it **3.** add it to the build system and **4.** add it to source control - You can just write the tests for a class or a piece of functionality at the bottom of its source file - or even header file!
+- Tests in the production code can be thought of as documentation or up-to-date comments - showing how an API is used
+- Testing internals that are not exposed through the public API and headers becomes easier!
+- [**Test-driven development**](https://en.wikipedia.org/wiki/Test-driven_development) in C++ has never been easier!
+
+The library can be used like any other if you don't like the idea of mixing production code and tests.
+
## Other features:
- really easy to get started - it's just 1 header file - see the [**tutorial**](tutorial.html)
diff --git a/doc/html_generated/readme.html b/doc/html_generated/readme.html
index 0ccc25e..61073ce 100644
--- a/doc/html_generated/readme.html
+++ b/doc/html_generated/readme.html
@@ -25,9 +25,7 @@
- [FAQ](faq.html)
- [Examples](../../examples)
-Support the development of the project with donations! There is a list of planned features which are all important and big - see the [**roadmap**](roadmap.html). I took a break from working in the industry to make open source software so every cent is a big deal.
-
-If you work for a company using doctest or have the means to do so, please consider financial support.
+This library is free, and will stay free but needs your support to sustain its development. There are lots of [**new features**](roadmap.html) and maintenance to do. If you work for a company using **doctest** or have the means to do so, please consider financial support.
[![Pledgie](https://pledgie.com/campaigns/31280.png)](https://pledgie.com/campaigns/31280)
[![Patreon](https://cloud.githubusercontent.com/assets/8225057/5990484/70413560-a9ab-11e4-8942-1a63607c0b00.png)](http://www.patreon.com/onqtam)
diff --git a/doc/html_generated/roadmap.html b/doc/html_generated/roadmap.html
index 293033a..43a2436 100644
--- a/doc/html_generated/roadmap.html
+++ b/doc/html_generated/roadmap.html
@@ -5,9 +5,8 @@
## Roadmap
-Support the development of the project with donations! I work on this project in my spare time and every cent is a big deal.
+This library is free, and will stay free but needs your support to sustain its development. There are lots of [**new features**](roadmap.html) and maintenance to do. If you work for a company using **doctest** or have the means to do so, please consider financial support.
-If you work for a company using doctest or have the means to do so, please consider financial support.
[![Pledgie](https://pledgie.com/campaigns/31280.png)](https://pledgie.com/campaigns/31280)
[![Patreon](https://cloud.githubusercontent.com/assets/8225057/5990484/70413560-a9ab-11e4-8942-1a63607c0b00.png)](http://www.patreon.com/onqtam)